Bug 1636959
| Summary: | pmdaproc only reads the first 1024 bytes of the /proc/*/status file resulting in lost metric values [rhel-7.6.z] | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Oneata Mircea Teodor <toneata> |
| Component: | pcp | Assignee: | Nathan Scott <nathans> |
| Status: | CLOSED ERRATA | QA Contact: | Michal Kolar <mkolar> |
| Severity: | high | Docs Contact: | Vladimír Slávik <vslavik> |
| Priority: | urgent | ||
| Version: | 7.5 | CC: | brolley, fche, fkrska, kwalker, lberk, mcermak, mgoodwin, mkolar, nathans, patrickm, tbowling, toneata, vslavik |
| Target Milestone: | rc | Keywords: | ZStream |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: |
Previously, the Performance Co-Pilot (PCP) toolkit failed to report certain process details on very large systems in some cases. The code reading the process details files was changed so that it can read data of arbitrary length, instead of only the first 1024 bytes. As a result, the described PCP error can no longer happen.
|
Story Points: | --- |
| Clone Of: | 1600262 | Environment: | |
| Last Closed: | 2018-10-30 12:22:07 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1600262 | ||
| Bug Blocks: | |||
|
Description
Oneata Mircea Teodor
2018-10-08 11:14:40 UTC
A build has been prepared with the fix now, beginning errata prep. Whoops, no build yet - confused this BZ with 1636960 - this one (for 7.6) is blocked on missing rhel7.6.x+ flag so the build cannot yet proceed. Otherwise, its good to go. Blocked on dist-git branch creation: https://projects.engineering.redhat.com/browse/RCM-43341 Verified against pcp-4.1.0-5.el7_6.x86_64. The PM_ERR_APPVERSION code that the user reported would have come from pmda.c:
case PROC_PID_STATUS_CPUSALLOWED: /* proc.psinfo.cpusallowed */
if ((atom->cp = _pm_getfield(entry->status_lines.cpusallowed, 1)) == NULL)
return PM_ERR_APPVERSION;
break;
which would happen if fetch_proc_pid_status in proc_pid.c ran out of 1024-byte input before it got to the Cpus_allowed_list: line. The bug report and original doc text is confirmed by reading the code.
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, 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-2018:3345 |