Bug 1800685

Summary: pmrep fails to open an archive from rhel7 on fedora30 with python3-3.7.6-1.fc30
Product: [Fedora] Fedora Reporter: Alexandros Panagiotou <apanagio>
Component: pcpAssignee: Nathan Scott <nathans>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 30CC: agerstmayr, lberk, mgoodwin, myllynen, nathans
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: pcp-5.0.3 pcp-5.0.3-2.fc31 pcp-5.0.3-1.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-11 22:46:00 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:
Attachments:
Description Flags
a short archive recorded on rhel7 that reproduces the failure none

Description Alexandros Panagiotou 2020-02-07 17:13:29 UTC
Created attachment 1661747 [details]
a short archive recorded on rhel7 that reproduces the failure

Description of problem:
When trying to extract metrics from the attached archive with pmrep, pmrep fails with the backtrace:

  File "/usr/bin/pmrep", line 38, in <module>
    from pcp import pmapi, pmi, pmconfig
  File "/usr/lib64/python3.7/site-packages/pcp/pmi.py", line 102, in <module>
    c_char_p, pmID, c_int, pmInDom, c_int, pmUnits]
TypeError: item 6 in _argtypes_ passes a struct/union with a bitfield by value, which is unsupported.

This happens after upgrading python3 to python3-3.7.6-1.fc30.x86_64.

With python3-3.7.3-1.fc30.x86_64 it works fine.

A very very quick search reveals https://bugs.python.org/issue39295 , so pcp may turn out to be a victim of an underlying problem.


Version-Release number of selected component (if applicable):
pcp-system-tools-5.0.2-1.fc30.x86_64
python3-3.7.6-1.fc30.x86_64
(latest versions available for fedora 30)

How reproducible:
Always

Steps to Reproduce:
1. Install the versions of pcp and python mentioned above
2. Download the archive attached to the BZ
3. Run pmrep -t10s -a 20200207.17.32.0 :vmstat

Actual results:
pmrep -t10s -a 20200207.17.32.0 :vmstat
Traceback (most recent call last):
  File "/usr/bin/pmrep", line 38, in <module>
    from pcp import pmapi, pmi, pmconfig
  File "/usr/lib64/python3.7/site-packages/pcp/pmi.py", line 102, in <module>
    c_char_p, pmID, c_int, pmInDom, c_int, pmUnits]
TypeError: item 6 in _argtypes_ passes a struct/union with a bitfield by value, which is unsupported.

Expected results:
pmrep provides the data from the archive.

Additional info:
I cannot reproduce the failure in fedora31.

Comment 1 Nathan Scott 2020-02-10 23:29:26 UTC
Thanks for reporting.  This has been fixed in upstream PCP via the commit below.
Next scheduled PCP update in Fedora 30 (with this fix) is in approx 3 weeks - until then, the upstream PCP github and/or bintray repos could be used.

commit 2e581f33a5710b5ef3f8da22cc75d13fde3f0713
Author: Nathan Scott <nathans>
Date:   Mon Jan 20 14:29:09 2020 +1100

    python api: allow pmUnits to be converted to an int
    
    Provide an __int__ conversion routine for the pmUnits class
    which contains bitfields, recently confusing latest version
    of python3 when passed on the stack.
    
    This resolves QA failure in pmrep tests on Fedora31 with the
    latest python updates applied.

Comment 2 Fedora Update System 2020-02-27 11:26:07 UTC
FEDORA-2020-1948419b2e has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2020-1948419b2e

Comment 3 Fedora Update System 2020-02-27 18:38:11 UTC
pcp-5.0.3-1.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-1948419b2e

Comment 4 Fedora Update System 2020-02-28 01:27:25 UTC
pcp-5.0.3-1.fc32 has been pushed to the Fedora 32 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-7ac95d60db

Comment 5 Fedora Update System 2020-03-02 05:27:57 UTC
FEDORA-2020-a4236a5dcf has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2020-a4236a5dcf

Comment 6 Fedora Update System 2020-03-02 19:56:56 UTC
pcp-5.0.3-2.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-a4236a5dcf

Comment 7 Fedora Update System 2020-03-11 22:46:00 UTC
pcp-5.0.3-2.fc31 has been pushed to the Fedora 31 stable repository. If problems still persist, please make note of it in this bug report.

Comment 8 Fedora Update System 2020-03-16 20:16:50 UTC
pcp-5.0.3-1.fc32 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.

Comment 9 Fedora Update System 2020-03-16 20:29:35 UTC
pcp-5.0.3-1.fc32 has been pushed to the Fedora 32 stable repository. If problems still persist, please make note of it in this bug report.