There are 6 open security issues in sid.
There are 6 open security issues in forky.
There are 9 open security issues in bullseye.
There are 10 open security issues in bookworm.
commit 4101ea464eb76b0e920d2bbe6b860119b6ed415e
Author: Jan Kurik <jkurik@redhat.com>
Date: Tue Aug 11 07:06:44 2026 +0200
Fix build on older RHEL and CentOS release
Older RHEL and CentOS releases do not support 'Recommends' directive.
commit 5b519c541291f76c9fd914e4f1381439625cfddc
Author: Nathan Scott <nathans@redhat.com>
Date: Tue Aug 11 10:32:03 2026 +1000
pmdalmsensors, qa/1480: handle sensor read failures gracefully
When sensors -j is called for a specific chip (e.g. NVMe) and the
device returns EAGAIN, the empty or invalid output causes json.loads()
to raise an exception, crashing the fetch callback. Catch JSON parse
errors during fetch and preserve the last known sensor values instead.
At init time (no chip filter), re-raise the exception so the PMDA
fails loudly rather than silently starting with zero metrics.
Also harden the QA test: ensure the awk sum is always numeric so
_within_tolerance does not receive empty arguments.
Relates: #2665
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
commit 32cb4b12454e6070b87265de1e1699b69f45ffc7
Merge: 42900947 d8a620f3
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 10 15:14:46 2026 +1000
Merge pull request #2661 from lilu5458/fix/pmagetlog-heap-overflow-v2
libpcp_archive: fix heap buffer overflow in pmaGetLog via integer underflow
commit d8a620f37b1db38ea1ead75a069d83d3d0ba97a2
Author: lilu <lilu@kylinos.cn>
Date: Mon Aug 10 11:38:16 2026 +0800
libpcp_archive: fix heap buffer overflow in pmaGetLog via integer underflow
pmaGetLog() in src/libpcp_archive/src/io.c reads a 4-byte head, then computes
`ntohl(head) - sizeof(head)` as the number of bytes to read into the malloc'd
buffer of size `ntohl(head)`. When a malicious archive supplies head with
ntohl(head) < sizeof(head) (e.g. head == 1), the unsigned subtraction wraps to
a huge size_t, and the preceding `lbuf[0] = head` store already writes 4 bytes
into the malloc(1) buffer -- a heap buffer overflow.
Add an explicit check that ntohl(head) >= 2 * sizeof(head) (enough room for the
head field itself plus the trailing tail field) before the malloc/fread. On
failure, return PM_ERR_LOGREC without rewinding: if the record is bad the caller
is expected to give up, and leaving the file position advanced past it avoids
reprocessing the same bad record (a potential infinite loop).
Reproduction: a crafted PCP archive (head=1 TYPE_DESC record) fed to pmlogextract
triggers the overflow in the real pmaGetLog code path (pmlogextract main ->
nextmeta -> pmaGetLog). On vanilla glibc malloc the overwrite of the 1-byte
allocation is silent, so pmlogextract returns PM_ERR_LOGREC ("Corrupted record")
without crashing; building libpcp_archive + pmlogextract with -fsanitize=address
makes it deterministic:
==ERROR: AddressSanitizer: heap-buffer-overflow on address ...
WRITE of size 4 ... thread T0
#0 pmaGetLog src/libpcp_archive/src/io.c:98 (lbuf[0] = head)
#1 nextmeta src/pmlogextract/pmlogextract.c:1830
#2 main src/pmlogextract/pmlogextract.c:3141
... is located 0 bytes to the right of 1-byte region ...
allocated by thread T0 here:
#0 malloc
#1 pmaGetLog io.c:90 (malloc(ntohl(head)))
After the fix, pmlogextract returns PM_ERR_LOGREC cleanly with no ASAN error.
commit 4290094757de03899fafe469df541e467d34df78
Merge: 86c77d0e c8acabe2
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 10 13:06:53 2026 +1000
Merge branch 'main' of github.com:performancecopilot/pcp
commit c8acabe26ed6beb3fc1a280828b8ce0471ff9415
Merge: e7888870 16dde5d4
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 10 12:09:31 2026 +1000
Merge branch 'main' of https://github.com/performancecopilot/pcp
commit 86c77d0e4e8cca599043a8cd1436bbf5b2acc20e
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 10 10:16:51 2026 +1000
deb build: add postinst for libpcp-import2 /run/pmimport creation
Fixes QA test 2007.
commit 16dde5d4650b7525ad51a2c5203764978d254e15
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 10 09:53:17 2026 +1000
pmdadenki: update a couple more log_message locations for DSO use
Fixes QA test 1742.
commit 9df751f8adbeb88376d9dcb299b4696be49f5aac
Merge: 61735379 eb1b1b45
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 10 09:08:39 2026 +1000
Merge branch 'atop' of github.com:kurik/pcp into kurik-atop
commit 61735379dee76dab635060dc9aa3404326db3f99
Merge: c7ed4fcd ad616be4
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 10 09:00:53 2026 +1000
Merge branch 'fix-libpcp-web-timespec-str' of github.com:xiejing-dev/pcp into xiejing-dev-fix-libpcp-web-timespec-str
commit c7ed4fcd6e6ab4426ce7a1dd492e15f5eadeae9c
Author: Nathan Scott <nathans@redhat.com>
Date: Sun Aug 9 16:03:50 2026 +1000
libpcp_web: also reset nlabels in empty-duplicate path
When lp->json is NULL but lp->nlabels > 0, the shallow copy
left dup->nlabels positive with dup->labels set to NULL.
Reset nlabels to 0 so consumers cannot dereference a NULL
labels pointer.
Reported-by: coderabbitai
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
commit 26d4ca53ef4ce107aad8378826c0606a3d8b0ea7
Author: Nathan Scott <nathans@redhat.com>
Date: Sun Aug 9 13:37:11 2026 +1000
libpcp_web: fix double-free in pmwebapi_labelsetdup
pmwebapi_labelsetdup() performs a shallow struct copy (*dup = *lp)
and then selectively deep-copies json and labels — but only when
nlabels > 0. Two problems:
1. When nlabels <= 0 (or json is NULL), the dup shares the json
pointer with the source. When pmDiscoverInvokeLabelsCallBacks
frees the source labelset after invoking callbacks, the stored
duplicate retains the dangling pointer. The next label discovery
cycle frees the old duplicate, double-freeing the json allocation.
2. The compound flag and hash pointer were never handled — if set,
the dup shares the opaque hash with the source, again leading
to a double-free via pmFreeLabelSets.
Fix both by clearing compound/hash immediately after the struct copy
and, for the nlabels <= 0 / NULL-json case, NULLing json, jsonlen
and labels before returning. This matches what __pmDupLabelSets in
libpcp already does correctly for the same cases.
Resolves a pmproxy SIGABRT (double-free) in archive discovery:
pmFreeLabelSets ← pmSeriesDiscoverLabels ← pmDiscoverInvokeLabelsCallBacks
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fixes: #2686
commit e7888870a9f5cc746a6193ef87ba27033a0985cf
Author: Ken McDonell <kenj@kenj.id.au>
Date: Sat Aug 8 07:38:54 2026 +1000
qa: more if cmd | cmd cleanup
Similar to the earlier if ! _service ... refactoring, but these ones
don't involve _service() but have the same problem, namely the "if" was
testing the exit status of the last command in the pipeline instead of
the exit status of the first command.
modified: 1166
modified: 1166.out
modified: 117
modified: 1477
modified: 647
modified: 648
modified: 683
modified: 725
modified: 832
And a small change to src/qa_libpcp_compat.c on the way through.
commit 8594dc578d2f7e173b0f6c8e958752811538b011
Author: Ken McDonell <kenj@kenj.id.au>
Date: Sat Aug 8 06:41:11 2026 +1000
qa: tests using pminfo -L ... mmv need mmv in the local PMNS
These tests don't use -n, so they rely on the local PMNS (as used
by pmcd) to provide the
mmv 70:*:*
PMNS entry, which means the mmv PMDA needs to be installed and
running ... normally this is so, but I tripped over this when a
different issue (now fixed) left pmcd without a configured mmv
PMDA.
modified: 682
modified: 990
modified: 1552
commit 234ce7be68562c64ea4089ffd19e7083abab3a59
Author: Ken McDonell <kenj@kenj.id.au>
Date: Sat Aug 8 06:39:53 2026 +1000
qa: really-retire 714 and 848
Old NSS secure DB tests.
commit eb1b1b4572046e5c6098c6fc38c53c9eda6a653f
Author: Jan Kurik <jkurik@redhat.com>
Date: Fri Aug 7 10:25:55 2026 +0200
Fixed date in the changelog
commit c6bb82f92bf6a768c6eef8c57644478dc402a86e
Author: Jan Kurik <jkurik@redhat.com>
Date: Fri Aug 7 10:09:01 2026 +0200
Fix of pcp-atop conflict with atop on Fedora
Make pcp-atop as optional dependency on RPM based distributions to
allow users with installed atop to update PCP while keeping the
already installed atop.
commit 918d12b68beca9b2d33e7ff9553aa0fb2fda618d
Merge: 8bcc1345 ce78cb97
Author: Nathan Scott <nathans@redhat.com>
Date: Fri Aug 7 13:56:18 2026 +1000
Merge branch 'qa-group-updates'
commit ce78cb974deebdeb2fc64ca2c5018c664a1f4602
Author: Nathan Scott <nathans@redhat.com>
Date: Fri Aug 7 13:55:53 2026 +1000
qa: quieten denki startup diagnostics if run as a DSO, fixes 1742
commit 2815ac6f6a30a5addc10ee557198d7d840799a7b
Author: Nathan Scott <nathans@redhat.com>
Date: Fri Aug 7 13:55:05 2026 +1000
qa: add recently overlooked updates to qa/group file
commit 8bcc1345ab14e6e07a993accdad1f6b282877b2c
Merge: 1841f9c1 f5a16677
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 13:48:15 2026 +1000
Merge pull request #2684 from kmcdonell/wip
qa: big refactor for _service usage [Part 2 of 2 redo for commit 40641f731]
commit f5a16677bd5bcd8703f48c3dc861fb43be7f7524
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 13:39:56 2026 +1000
qa/713: one more if ! _service ... fix up
commit a8817533dcfe994ecf5621ea0fa0c672b2049ffd
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 13:36:45 2026 +1000
qa: script fixups
@coderabbitai suggestions from PR #2864
commit 27f813cad7284f63048f388d470f5c8f880b3843
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 12:05:21 2026 +1000
qa: big refactor for _service usage [Part 2 of redo for commit 40641f73a]
@coderrabbitai noticed an issue with one of my qa test changes as an
"outside scope of diff" issue. In a nutshell we (me?) had this sort
of thing:
if ! _service ... | _some_filter; then _exit 1; fi
which is 100% broken because the _exit 1 only happens if _some_filter
has non-zero exit, and the return value from _service is ignored.
The only thing that saved the ship from sinking is that _service only
fails when a much bigger wheel has fallen off and that very rarely
happens and is most unlikely to go unnoticed.
This should be something like:
if ! _service >$tmp.tmp 2>&1; then cat $tmp.tmp; _exit 1; fi
_some_filter <$tmp.tmp
Unfortunately the pattern of usage is not consistent across the test
scripts, so this required a hacky script and a lot of RI to fix the 156
(!) scripts involved.
commit 1841f9c1b5938db03316642dd995da889c22b038
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 11:44:52 2026 +1000
qa: big refactor for _service usage [Part 1 of redo for commit 40641f73a]
@coderrabbitai noticed an issue with one of my qa test changes as an
"outside scope of diff" issue. In a nutshell we (me?) had this sort
of thing:
if ! _service ... | _some_filter; then _exit 1; fi
which is 100% broken because the _exit 1 only happens if _some_filter
has non-zero exit, and the return value from _service is ignored.
The only thing that saved the ship from sinking is that _service only
fails when a much bigger wheel has fallen off and that very rarely
happens and is most unlikely to go unnoticed.
This should be something like:
if ! _service >$tmp.tmp 2>&1; then cat $tmp.tmp; _exit 1; fi
_some_filter <$tmp.tmp
Unfortunately the pattern of usage is not consistent across the test
scripts, so this required a hacky script and a lot of RI to fix the 156
(!) scripts involved.
commit a8c151deb10dae06e5bb5434ec93dd2ddbc264dd
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 08:22:21 2026 +1000
Revert "qa: big refactor for _service usage"
This reverts commit 40641f73abf5e255919ccb3278a03f9bd0118bae.
Splitting into 2 commits so I get @coderabbit reviews.
commit 40641f73abf5e255919ccb3278a03f9bd0118bae
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 07:59:32 2026 +1000
qa: big refactor for _service usage
@coderrabbitai noticed an issue with one of my qa test changes as an
"outside scope of diff" issue. In a nutshell we (me?) had this sort
of thing:
if ! _service ... | _some_filter; then _exit 1; fi
which is 100% broken because the _exit 1 only happens if _some_filter
has non-zero exit, and the return value from _service is ignored.
The only thing that saved the ship from sinking is that _service only
fails when a much bigger wheel has fallen off and that very rarely
happens and is most unlikely to go unnoticed.
This should be something like:
if ! _service >$tmp.tmp 2>&1; then cat $tmp.tmp; _exit 1; fi
_some_filter <$tmp.tmp
Unfortunately the pattern of usage is not consistent across the test
scripts, so this required a hacky script and a lot of RI to fix the 156
(!) scripts involved.
commit 8991b6f3b00bfb51ca87ce53c72a9cac33eebce6
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 07:26:08 2026 +1000
qa/check-group: improved integrity checking and usage change
The query command line argument is optional and without it
the integrity of the group file is checked (more thoroughly) to
find things like:
- test in the group file but no corresponding test script
- undefined group assigned to a test in the group file
- group without any associated tests in the group file
- test script not mentioned in the group file
- test script not executable
And expose a -d flag for debugging check-group.
Also update the COOKBOOK entry.
commit 188a6265c0943f4722b038a97a90451ed88fc4b6
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Aug 7 07:19:19 2026 +1000
qa/group: comment out some retired groups, add some missing group assignments
Fixes problems found by the (improved) qa/check-group (in the next
commit).
commit f370583b42f19c0a227fcfafb7146147cfad9df2
Merge: 138d813e 991464f1
Author: Ken McDonell <kenj@kenj.id.au>
Date: Wed Aug 5 21:31:35 2026 +1000
Merge branch 'main' of ../pcp
commit 991464f1f7bc4cd9f86049e99081677498b13582
Author: Ken McDonell <kenj@kenj.id.au>
Date: Wed Aug 5 21:29:43 2026 +1000
src/pmdas/mmv/src/GNUmakefile: fix botch from commit bc2635ea6
Attempting to remove the duplicat install lines left the mmv
PMDA installation broken, and lots of QA failures.
With this rework, all of check -g pmda.mmv passes on bozo.
commit 138d813e2a33310eb639e1e7d8c4254463f7da37
Author: Nathan Scott <nathans@redhat.com>
Date: Wed Aug 5 09:24:37 2026 +1000
qa: reserve test 1861 for new pmsearch implementation
commit ad616be4ba675f82f0ca8b264d7296263938045d
Author: xiejing <xiejing@kylinos.cn>
Date: Tue Aug 4 17:43:50 2026 +0800
libpcp_web: fix truncated timespec strings
Pass the caller-provided buffer length to pmsprintf instead of
sizeof(buflen). Since buflen is an int, sizeof(buflen) is typically
four bytes, limiting the output to three characters plus the null
terminator.
commit aecf52c69776ad8cacd3a77186be9067ffda54f5
Merge: 27097657 c82cea1b
Author: Ken McDonell <kenj@kenj.id.au>
Date: Tue Aug 4 16:08:01 2026 +1000
Merge pull request #2680 from kmcdonell/wip
Fault injection testing outside libpcp - PoC for pmlogmv
commit 2709765754b13baa56d89a1825075a1bedddd3bd
Author: Nathan Scott <nathans@redhat.com>
Date: Tue Aug 4 16:02:13 2026 +1000
build: add rpm Conflicts to prevent atop vs pcp-atop co-install
Related: Fedora bug #2510602
commit c0a452e808781d66456a7c5fe790b1f7c36604de
Merge: 63bb35f4 fdfacddd
Author: Nathan Scott <nathans@redhat.com>
Date: Tue Aug 4 15:57:18 2026 +1000
Merge branch 'Ali-Nasrolahi-improve-lmsensor-fetch'
commit fdfacddd9e39217f806bc09d329c9de8a0385bd9
Merge: 63bb35f4 49cf76b2
Author: Nathan Scott <nathans@redhat.com>
Date: Tue Aug 4 15:56:27 2026 +1000
Merge branch 'improve-lmsensor-fetch' of github.com:Ali-Nasrolahi/pcp into Ali-Nasrolahi-improve-lmsensor-fetch
commit c82cea1babd042139d471dea61854b99aee87434
Author: Ken McDonell <kenj@kenj.id.au>
Date: Tue Aug 4 13:48:11 2026 +1000
man/man1/pmlogconf.1: remove replicated block of text
commit 0d1cbc2a49ed1582a2c973371d0b9a1bf0851bf6
Author: Ken McDonell <kenj@kenj.id.au>
Date: Tue Aug 4 12:56:08 2026 +1000
pmlogcp (or pmlogmv): add fault insertion testing
In copy_file() it is important that we handle errors from read() and
write() in ways that don't compromise the input archive and don't leave
turds in the filesystem.
This is also a Proof of Concept for using libpcp_fault for fault
injection testing outside libpcp.
But it needed some "extra" steps:
1. a change to builddefs so that $(PCPLIB) can be set in a makefile and
not clobbered here, allowing libpcp_fault to be used in place of libpcp
when building an instrumented application
2. the symbol __pmFault_Arm needs to be exported from libpcp_fault as the
PCP_FAULT_* macros reference this variable (which is a static inside
libpcp_fault)
3. changes to pmlogmv.c to conditionally include "fault.h" and add
the fault insertion points
4. a new qa/1699 to trigger the fault injections and test the results
5. fixup for install-dev because for libpcp_fault the library is really
libpcp_fault, but the pkg-config libdir can only be found using
libpcp
commit b9376c5612932bb2b3e055fb23a36d81340ada51
Author: Ken McDonell <kenj@kenj.id.au>
Date: Tue Aug 4 07:03:21 2026 +1000
src/libpcp_fault/README: fix reference to moved man page
commit 8e0de494202bf9b8ef9a5f37a21d6f2347e0101e
Merge: 9a29f058 63bb35f4
Author: Ken McDonell <kenj@kenj.id.au>
Date: Tue Aug 4 07:02:45 2026 +1000
Merge branch 'main' of https://github.com/performancecopilot/pcp
commit 63bb35f48a914e34b83855947587d927841a1856
Merge: 4ce43095 5348d96f
Author: Ken McDonell <kenj@kenj.id.au>
Date: Tue Aug 4 07:01:01 2026 +1000
Merge pull request #2677 from kmcdonell/wip
Miscellaneous minor changes
commit 5348d96fe775e7b31f7f40f3c516c0594d9720d4
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 16:54:49 2026 +1000
man/man3i/__pmprocessexec.3: clarify __pmProcessExec cleanup
__pmProcessExec() only cleans up on success ... there is a failure code
path via sigaction() or sigprocmask() that misses the memory cleanup.
commit 297f4a63c2186cf9b5ff3475ae274e2583cc4c32
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 16:49:01 2026 +1000
src/libpcp/src/install-dev: more tweaks
commit d7218a19da6f9f03f38e996ba1d8f7e7d69ffa5d
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 16:15:44 2026 +1000
src/libpcp/src/install-dev: overhaul
- fix logic
- add -n (show-me) command line option
- don't install pkgconfig file (potentially in the wrong place)
commit 5747bec781e41ab64b0a2b436b4821ad817595f4
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 16:15:21 2026 +1000
src/libpcp/src/exec.c: change cleanup() scope to static
commit 4ce43095305b9f0dab6d975e03a67d9830cb6e5c
Merge: 60e20c97 31e297c3
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 3 12:54:11 2026 +1000
Merge branch 'macos-fixes'
commit 60e20c972306f195e8ba13bc9927e4e7798940b2
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 3 10:48:00 2026 +1000
libpcp: complete fix for OOB read in __pmDecodeLogStatus
The earlier fix for CVE-2026-16530 added len < 0 guards to five of
the six length-prefixed string fields in __pmDecodeLogStatus but
missed the pmlogger_timezone_len field. A negative length (e.g.
0x80000000) bypasses the len > PM_MAX_TIMEZONELEN guard, passes the
signed pointer arithmetic in the p + len > pduend check, and reaches
strndup(p, len) where len sign-extends to a huge size_t, causing an
OOB read.
Also fix the same missing guards in libpcp3 (pmcd_fqdn_len,
pmcd_timezone_len, pmcd_zoneinfo_len) and update error messages from
"too long" to "invalid" since the check now covers negative values.
Add negative-length test case to pducrash.c decode_log_status_oob().
Reported-by: zx (Jace), GitHub @manus-use
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
commit 30ea149551d569868ff3c6e88b300260dff1320c
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 3 12:41:30 2026 +1000
qa: improve diagnostics in test 1626 for triage
commit 9a29f0587f25bc5d9540e83f189a62ce7b010ac0
Merge: 03115d9d 8322917c
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 12:38:34 2026 +1000
Merge branch 'wip'
commit 8322917c1a431bf6ecc6971a981d57fcace4b5b0
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 12:33:27 2026 +1000
qa/common.check: small @coderabbitai suggestions
commit 31e297c3baa9a35ea3e53088b7368befca09a461
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 3 11:38:01 2026 +1000
build/mac: fix pmlogger/pmie launchd services using farm+pmpause pattern
The pmlogger and pmie launchd plists used "/etc/init.d/<service> start"
which forks daemons into the background and exits. With KeepAlive=false,
launchd tears down the job scope on exit, sending SIGTERM to the child
processes ~1 second after startup.
Switch both plists to use the pmlogger_farm/pmie_farm scripts, which
run *_check to start all configured instances then exec pmpause as a
long-running foreground process. This matches the Linux systemd farm
service pattern and keeps launchd happy with KeepAlive=true.
Also run as pcp:pcp instead of root:wheel (matching the periodic check
plists), and remove the /private prefix from WorkingDirectory across
all periodic plists for consistency — /var is a stable symlink to
/private/var on macOS and all other paths in these plists already
use /var.
Resolves: https://github.com/performancecopilot/pcp/issues/2674
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
commit 5ea18eff425b4b61b1fd385f3573711caefa5ea4
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 3 11:27:46 2026 +1000
pmdaopenmetrics/pmdaopentelemetry: defer requests import for install
The Python "requests" module is a build dependency but is not bundled
in the macOS .pkg. Both PMDAs import it at the top level, which kills
the entire script — including the PCP_PYTHON_DOMAIN/PCP_PYTHON_PMNS
code paths that only need to emit domain.h and pmns files during
Install.
Wrap the import in try/except and guard the Session() creation so that
Install succeeds without requests. At runtime, URL-based sources will
log an error if requests is still missing but the PMDA stays alive.
Also change pmdaopentelemetry default user from None (root) to 'pcp'
to match pmdaopenmetrics.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
commit e54c4f582505c2c5fee200f777def562aae4f0e9
Author: Nathan Scott <nathans@redhat.com>
Date: Mon Aug 3 11:13:24 2026 +1000
build/mac: fix pcp user permissions for /var/log/pcp and config dirs
The postinstall and postupgrade scripts chowned five subdirectories
under /var/log/pcp but not the parent directory itself, and missed
/var/lib/pcp/config entirely. On a clean install the pcp user cannot
write /var/log/pcp/NOTICES or create /var/lib/pcp/config/pmlogger/
config.default, causing pmlogger to exit at startup.
Chown the parent /var/log/pcp (which covers all subdirectories) and
/var/lib/pcp/config (covers pmlogger and pmie config).
Resolves: https://github.com/performancecopilot/pcp/issues/2673
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
commit 7939684c2e309800acbdca431b00e22b827aa4c8
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 09:49:44 2026 +1000
qa/1687: fix return status on errors
commit 6f61c9e51ea1dd03e937438073f0f2a80f5457fc
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 09:36:27 2026 +1000
src/pmdas/pmdaopentelemetry/pmdaopentelemetry.python: remove () in if
Oh, how I hate Python.
commit 3bcdcced10cf007a82c6974762e3fdd2fe13eb21
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 09:12:06 2026 +1000
src/pmlogmv/pmlogmv.c: small changes suggested by coderabbitai
commit 03115d9def136e162748629020240ad2028bc7fc
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 08:22:32 2026 +1000
man pages: accept coderabbitai suggested wordsmithing
From PR #2677, but applied to all man pages with a
.SH DEBUGGING OPTIONS
section.
commit 186e8914b9f4bc08dc00f7114040c05a94a67060
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 07:09:21 2026 +1000
man: pmlogmv and __pmprocessexec: changes from PR #2677 review
Thanks coderabbitai.
commit 73f431116510f283e7073ef41eff0f480e1a3748
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 06:40:29 2026 +1000
src/libpcp/src/auxconnect.c: tweak socket option settings
1. make FD_CLOEXEC unconditional, so no if (family == AF_UNIX)
run-time guard and no #if defined(HAVE_STRUCT_SOCKADDR_UN)
compile-time guard
2. make TCP_NODELAY conditional on family != AF_UNIX as it is
not supported for AF_UNIX but is supported for the other
address families we use, AF_INET and AF_INET6
commit e62107521958c41817d7ddeee90cf1732b22d0de
Author: Ken McDonell <kenj@kenj.id.au>
Date: Mon Aug 3 06:01:38 2026 +1000
src/pmdas/opentelemetry: change -D semantics
Make -D behave like a regular PCP app with debug flags as option
arguments and allow all of the pmdbg(1) flags to be set.
The previous -D behaviour now moves to -D appl0 (both on the command
line and via pmstore to opentelemetry.control.debug).
With the previous pmdaproc.sh change, we can now set
PCP_DEBUG=someflags in the environment before running Install and the
installed PMDA will have -D someflags welded into pmcd.conf.
commit 09d5202e3352a8661982ab7551e3d3bd93ed52d9
Author: Ken McDonell <kenj@kenj.id.au>
Date: Sun Aug 2 11:03:23 2026 +1000
qa/1632 & 1948: _notrun on bozo
1632 - fix grammar in comment from last commit
1948 - apply same _notrun on bozo band-aid as was previously done
for 1632 (both tests are structurally similar and use the
same endpoint generator)
commit 37e51492893dd795155e7f410005f6fe3ea3eea8
Author: Ken McDonell <kenj@kenj.id.au>
Date: Sun Aug 2 10:47:43 2026 +1000
qa/1632: _notrun on bozo ... dodge unexplained failure on one host
commit f4ea000532abbff089a1ffd79fe86f4f69b344fa
Author: Ken McDonell <kenj@kenj.id.au>
Date: Sun Aug 2 07:09:35 2026 +1000
qa/1632.out: remade after (largely) cosmetic changes to 1632
commit fe08962812d74b695d22c6d6106d206664334ed6
Author: Ken McDonell <kenj@kenj.id.au>
Date: Sun Aug 2 07:08:16 2026 +1000
qa/1632: small changes to handling of output ($tmp.out and $tmp.err)
commit 95379ef770afd142ec020cf3433a86c429655dcb
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 10:08:46 2026 +1000
src/libpcp/src/access.c: more info from __pmAccAdd*() routines
When a "Permission clash" occurs the diagnostic messages did not report
the 4 conflicting permission bit-fields ... this commit exposes the
(cryptic) specOps and denyOps values for the extant and the conflicting
permissions.
commit 3a6b40dd1afcddb53045bc3e6df48d0832fc3ff0
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 09:52:27 2026 +1000
src/pmcd/pmdaproc.sh: allow -D... setting from Install for Python and Perl PMDAs
Generic "daemon" PMDAs have (forever) used $PCP_DEBUG if set when
Install is run to append -D "$PCP_DEBUG" to the command line options
in pmcd.conf.
This commit adds the same logic for Python and Perl PMDAs that are
special cases of "daemon" and were missing the $PCP_DEBUG special
sauce.
Of course setting $PCP_DEBUG before Install is only going to work if
the PMDA understands -D on the command line, but that's another issue.
commit bc2635ea652d7a659f39cbdb34d224aa08b91ef5
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 09:48:48 2026 +1000
src/pmdas/mmv/src/GNUmakefile: fix duplicate install line
Found on OpenIndiana (and not anywhere else!), we were installing
$(PMDAADMDIR)/root_mmv *twice* and not installing $(PMDAADMDIR)/pmns
*at all*.
Fortunately for the mmv PMDA (a) the pmns file is never really used
and (b) root_mmv and pmns are identical.
commit 0452b5142c6a1b08ffaf38681d96c1f4df0d58db
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 07:51:30 2026 +1000
qa/272: slightly relax pmcd access controls
On non-systemd platforms we were failing to see pmcd restarted
because of the restrictive access controls in pmcd.conf that
are used in this test.
The one line that no longer appears in 272.out is not central
to the effectiveness nor coverage of this test.
commit 81d2faea837a4b14ffbd64528d19917736c0e7f6
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 07:47:57 2026 +1000
src/libpcp/src/auxconnect.c: add some diagnostics for FD_CLOEXEC setting (Coverity)
New warnings around __pmGetFileDescriptorFlags() and
__pmSetFileDescriptorFlags() calls.
Resolves CID 505000.
commit d900e69d1f1760bb5a0b31384ccc7d367ec9abe2
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 07:35:58 2026 +1000
src/libpcp_pmda/src/root.c: add some diagnostics for FD_CLOEXEC setting (Coverity)
New warnings around __pmGetFileDescriptorFlags() and
__pmSetFileDescriptorFlags() calls.
Resolves CID 504999.
commit 5315d758398c6fec42ba762495e3ebbeb2a11cb7
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 07:25:03 2026 +1000
linux_sockets PMDA and libpcp: add __pmProcessFree()
The __pmProcess*() family of routines in libpcp do a good job of
cleaning up any internal memory allocations across all return paths
(success and error).
But Coverity noticed that the linux_sockets PMDA had encountered
a slightly different case, where the sequence ...
__pmProcessAddArg(...)
...
if (some error)
return;
...
__pmProcessPipe() [or __pmProcessExec(()]
lead to a memory leak.
We need a new __pmProcessFree() to allow the caller to abandon the
arg building and release all memory allocated so far (before the
return above).
- added routine to src/libpcp/src/exec.c, src/include/pcp/libpcp.h
and src/libpcp/src/exports.in
- updated the man pages: man/man3i/__pmprocessexec.3 and
man/man3i/__pmprocesspipe.3
- add __pmProcessFree.3.gz entry to debian/libpcp4-dev.install
- updated src/pmdas/linux_sockets/ss_stream.c to use the new
routine
Fixes CID 504998.
commit 69da1c7e36df314dd0f68e064e9783b238ab9a3e
Author: Ken McDonell <kenj@kenj.id.au>
Date: Fri Jul 31 06:33:41 2026 +1000
src/pmlogmv/pmlogmv.c: improve error code paths in copy_file()
Fixes Coverity CID 504997.
And new qa/1687 to exercise (part of) these error paths.
Also update the man page to (a) remove references to cp(1) that
is no longer used and clarify the wording around when file
copying happens.
commit e57bf423d38d62787449f018da6fe37cc67e3713
Author: Ken McDonell <kenj@kenj.id.au>
Date: Thu Jul 30 15:56:13 2026 +1000
qa/common.check: update _all_ipaddrs() for OpenBSD ifconfig(1)
No TX line here.
commit 2243090366c034aa166f335be7635c6b518af4cb
Merge: ce97aa44 d9125a19
Author: Nathan Scott <nathans@redhat.com>
Date: Thu Jul 30 12:55:44 2026 +1000
Merge branch 'fix/darwin-proc-pmda-metrics'
commit ce97aa444844753aea3987d8767db26895eb6d92
Merge: 1a59b38d c841c63f
Author: Nathan Scott <nathans@redhat.com>
Date: Thu Jul 30 12:50:10 2026 +1000
Merge branch 'selinux-virtqemud'
commit 1a59b38dc58957b980f9b9c414c96f1994a291e3
Author: Nathan Scott <nathans@redhat.com>
Date: Thu Jul 30 12:49:57 2026 +1000
build: restrict resctrl pmda to linux-only builds
commit c665593d28671a84923bfaad34bddaacaff05829
Author: Nathan Scott <nathans@redhat.com>
Date: Thu Jul 30 12:49:34 2026 +1000
docs: bump version number for next planned release
commit d9125a194075dd0d452447a10c3bcfe9d603e4a9
Author: Nathan Scott <nathans@redhat.com>
Date: Wed Jul 29 10:26:17 2026 +1000
darwin_proc: fix process state, start_time, memory units and metric gaps
Process state was only set inside darwin_process_set_taskinfo() which
is skipped when proc_pidinfo() fails (e.g. insufficient privileges).
Move initial state assignment into darwin_process_set_basic_fields()
using p_stat from kinfo_proc so all processes get a valid state.
Refine to RUNNING when taskinfo succeeds and pti_numrunning > 0.
Map SIDL to 'I' (idle) instead of 'B' for pcp-htop compatibility.
Propagate TH_STATE_UNINTERRUPTIBLE from threads to parent process
as 'D' state, matching native htop behavior.
Fix proc.psinfo.start_time which stored absolute epoch seconds but
declared PM_TIME_NSEC units, causing pcp-htop to mangle the value
through its nanosecond-to-centisecond conversion. Now stores
nanoseconds since boot, consistent with the unit declaration and
with what pcp-htop expects.
Fix proc.psinfo.majflt to use pti_pageins (actual disk page-ins)
instead of pti_faults (total faults). Add proc.psinfo.minflt as
the difference (pti_faults - pti_pageins).
Fix proc.memory.size and proc.memory.rss unit declarations from
PM_SPACE_BYTE to PM_SPACE_KBYTE to match the stored values (which
are divided by 1024 before storage).
Fix proc.id.gid returning proc->uid instead of proc->gid.
Add PMNS aliases for Linux proc PMDA compatible metric names that
pcp-htop requests: pgrp, tty_pgrp, maj_flt. Add proc.psinfo.tgid
(equals pid on macOS) needed by pcp-htop for thread grouping.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Nathan Scott <nathans@redhat.com>
commit c841c63ff11124e931e61ba54ae6497fbe42c6c4
Author: Nathan Scott <nathans@redhat.com>
Date: Tue Jul 28 17:22:26 2026 +1000
selinux: allow pmdalibvirt access to virtqemud split daemon sockets
On newer Fedora/RHEL systems, libvirt uses split daemons (virtqemud)
instead of the monolithic libvirtd. The virtqemud socket has a
different SELinux type (virtqemud_var_run_t) than the old libvirtd
socket (virt_var_run_t), so pmdalibvirt was denied access.
Additionally, virtqemud needs to read /proc/<pid>/stat of connecting
clients (pcp_pmcd_t) for identification, which also requires policy.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
commit 49cf76b2e86dee159250d519c8202c21e4a568c0
Author: Ali Nasrollahi <A.Nasrolahi01@gmail.com>
Date: Fri Jul 24 22:25:58 2026 +0330
pmdalmsensors: query only the requested chip during metric fetch
The lmsensors PMDA currently executes a full `sensors -j` scan for
every metric fetch, even though only a single metric value is
requested. Since each invocation probes all detected sensor chips,
the same hardware is repeatedly queried while serving a single PCP
fetch request.
Store the original lm_sensors chip name during metric discovery and
use it to query only the chip associated with the requested metric.
This preserves the existing fetch semantics while avoiding redundant
probing of unrelated hardware.
The change reduces the amount of work performed per metric fetch and
improves scalability on systems exposing many sensor devices or slow
sensor backends.
Signed-off-by: Ali Nasrollahi <A.Nasrolahi01@gmail.com>
There are 6 open security issues in trixie.
You can find information about how to handle these issues in the security team's documentation.