Bug 1839698

Summary: Error when working with folio files outside of /tmp directory
Product: Red Hat Enterprise Linux 8 Reporter: Jan Kurik <jkurik>
Component: pcpAssignee: Mark Goodwin <mgoodwin>
Status: CLOSED ERRATA QA Contact: Jan Kurik <jkurik>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.3CC: agerstmayr, jkurik, mgoodwin, nathans, patrickm
Target Milestone: rcKeywords: Bugfix, Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcp-5.2.1 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-05-18 15:19:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jan Kurik 2020-05-25 09:30:40 UTC
Description of problem:
If a pcp utility (i.e. atop or pmrep) uses a folio file to work with an archive set, the utility is not able to find archives in case the folio files contains links to archives outside of "/tmp" directory.

Version-Release number of selected component (if applicable):
pcp-5.1.0-2.el8

How reproducible:
Always

Steps to Reproduce:
1. Make sure you have at least one archive file in /var/log/pcp/pmlogger/$(hostname)
2. Create a folio file from archives in /var/log/pcp/pmlogger/$(hostname)
# /usr/libexec/pcp/bin/mkaf /var/log/pcp/pmlogger/$(hostname) > \
  /tmp/pcp.archives.folio
3. Use the folio file i.e. with atop
# pcp atop -r /tmp/pcp.archives.folio

Actual results:
pcp-atop: Cannot open archive "/tmp//var/log/pcp/pmlogger/ci-vm-10-0-137-213.hosted.upshift.rdu2.redhat.com/20200525.04.16

Expected results:
pcp-atop works with all the archive files listed in the folio

Additional info:
As can be seen in the example output of atop command, atop is prefixing every archive filename in the folio with "/tmp/" prefix. This invalidates the file name and the archive can not be found then.

The same happen for i.e. pmrep command:
# pmrep -D pmapi --archive-folio /tmp/pcp.archives.folio :sar
pmNewContext(2, "/tmp//var/log/pcp/pmlogger/ci-vm-10-0-137-213.hosted.upshift.rdu2.redhat.com/20200525.04.16") <::> returns No such file or directory
pmrep: No such file or directory

Comment 1 Mark Goodwin 2020-09-23 01:56:50 UTC
The problem occurs due to the 'dir' prefix (of the path to the folio) being prepended to each archive path in the folio, which fails when those paths are absolute paths rather than relative. The folio may contain absolute paths if the original mkaf specifies absolute paths, as was done in the reproducer steps in Comment#0.

Resolved with the following upstream commit and QA updates for pcp-5.2.1:

commit 70c77e6107aaf654e3cbaefc41e655e68583b934 (upstream-goodwinos/master)
Author: Mark Goodwin <mgoodwin>
Date:   Wed Sep 23 11:44:37 2020 +1000

    libpcp: handle absolute paths to archives when using --archive-folio

Comment 7 errata-xmlrpc 2021-05-18 15:19:32 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (pcp bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:1754