Debian Package Tracker
Register | Log in
Subscribe

pcp

System level performance monitoring and performance management

Choose email to subscribe with

general
  • source: pcp (main)
  • version: 7.2.2-1
  • maintainer: PCP Development Team (DMD)
  • uploaders: Nathan Scott [DMD] – Ken McDonell [DMD]
  • arch: all any
  • std-ver: 4.7.2
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • o-o-stable: 5.2.6-1
  • oldstable: 6.0.3-1.1
  • stable: 6.3.8-1
  • unstable: 7.2.2-1
versioned links
  • 5.2.6-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 6.0.3-1.1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 6.3.8-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 7.2.2-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • libpcp-archive1
  • libpcp-archive1-dev
  • libpcp-gui2
  • libpcp-gui2-dev
  • libpcp-import-perl
  • libpcp-import1
  • libpcp-import1-dev
  • libpcp-import2
  • libpcp-import2-dev
  • libpcp-logsummary-perl
  • libpcp-mmv-perl
  • libpcp-mmv1
  • libpcp-mmv1-dev
  • libpcp-pmda-perl
  • libpcp-pmda3
  • libpcp-pmda3-dev
  • libpcp-trace2
  • libpcp-trace2-dev
  • libpcp-web1
  • libpcp-web1-dev
  • libpcp3
  • libpcp3-dev
  • libpcp4
  • libpcp4-dev
  • pcp (2 bugs: 0, 2, 0, 0)
  • pcp-atop
  • pcp-conf
  • pcp-doc
  • pcp-dstat (1 bugs: 0, 1, 0, 0)
  • pcp-export-pcp2elasticsearch
  • pcp-export-pcp2graphite
  • pcp-export-pcp2influxdb
  • pcp-export-pcp2json
  • pcp-export-pcp2spark
  • pcp-export-pcp2xlsx
  • pcp-export-pcp2xml
  • pcp-export-pcp2zabbix
  • pcp-export-zabbix-agent
  • pcp-gui
  • pcp-htop
  • pcp-import-benchmarks
  • pcp-import-collectl2pcp
  • pcp-import-ganglia2pcp
  • pcp-import-guidellm2pcp
  • pcp-import-iostat2pcp
  • pcp-import-mrtg2pcp
  • pcp-import-sar2pcp
  • pcp-import-sheet2pcp
  • pcp-pmda-infiniband
  • pcp-testsuite
  • pcp-zeroconf
  • python3-pcp
action needed
lintian reports 2 errors and 12 warnings high
Lintian reports 2 errors and 12 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2026-08-14 Last update: 2026-10-15 16:30
10 security issues in bookworm high

There are 10 open security issues in bookworm.

6 important issues:
  • CVE-2026-16524: A command injection flaw in PCP's linux_sockets PMDA allows malicious shell metacharacters via the network.persocket.filter metric. This failed validation lets attackers execute arbitrary commands as the PMDA user when metrics refresh.
  • CVE-2026-16526: A flaw in the PCP linux_sockets module exposes an unsecured internal connection. An attacker with initial code execution can exploit this to escalate privileges and execute arbitrary commands as root.
  • CVE-2026-16527: An unauthenticated remote attacker can bypass access controls by sending crafted requests to the PCP pmproxy /store endpoint. This allows the attacker to overwrite any PMDA metric, leading to arbitrary code execution and system takeover.
  • CVE-2026-16529: A signed integer overflow in the PCP __pmGetPDU() function can be exploited via crafted network packets during PDU processing or SASL negotiation. This permanently blinds the affected daemon, resulting in a total denial of service (DoS) for subsequent packet reads.
  • CVE-2026-16530: A flaw was found in the PCP (Performance Co-Pilot) `pmproxy` service. A remote attacker can exploit a vulnerability in the `pmLogLoadInDom()` function by sending a specially crafted request. This bypasses a critical bounds check, which can lead to the `pmproxy` service crashing, causing a Denial of Service (DoS). Additionally, this flaw may enable the leakage of sensitive information from the system's memory.
  • CVE-2026-16531: An unauthenticated remote attacker can exploit a path traversal vulnerability in the PCP pmproxy logger servlet using a crafted hostname. This allows arbitrary file and directory creation, potentially leading to a denial of service.
4 issues postponed or untriaged:
  • CVE-2023-6917: (needs triaging) A vulnerability has been identified in the Performance Co-Pilot (PCP) package, stemming from the mixed privilege levels utilized by systemd services associated with PCP. While certain services operate within the confines of limited PCP user/group privileges, others are granted full root privileges. This disparity in privilege levels poses a risk when privileged root processes interact with directories or directory trees owned by unprivileged PCP users. Specifically, this vulnerability may lead to the compromise of PCP user isolation and facilitate local PCP-to-root exploits, particularly through symlink attacks. These vulnerabilities underscore the importance of maintaining robust privilege separation mechanisms within PCP to mitigate the potential for unauthorized privilege escalation.
  • CVE-2024-3019: (needs triaging) A flaw was found in PCP. The default pmproxy configuration exposes the Redis server backend to the local network, allowing remote command execution with the privileges of the Redis user. This issue can only be exploited when pmproxy is running. By default, pmproxy is not running and needs to be started manually. The pmproxy service is usually started from the 'Metrics settings' page of the Cockpit web interface. This flaw affects PCP versions 4.3.4 and newer.
  • CVE-2024-45769: (needs triaging) A vulnerability was found in Performance Co-Pilot (PCP).  This flaw allows an attacker to send specially crafted data to the system, which could cause the program to misbehave or crash.
  • CVE-2024-45770: (needs triaging) A vulnerability was found in Performance Co-Pilot (PCP). This flaw can only be exploited if an attacker has access to a compromised PCP system account. The issue is related to the pmpost tool, which is used to log messages in the system. Under certain conditions, it runs with high-level privileges.
Created: 2024-02-29 Last update: 2026-10-07 11:30
9 security issues in bullseye high

There are 9 open security issues in bullseye.

6 important issues:
  • CVE-2026-16524: A command injection flaw in PCP's linux_sockets PMDA allows malicious shell metacharacters via the network.persocket.filter metric. This failed validation lets attackers execute arbitrary commands as the PMDA user when metrics refresh.
  • CVE-2026-16526: A flaw in the PCP linux_sockets module exposes an unsecured internal connection. An attacker with initial code execution can exploit this to escalate privileges and execute arbitrary commands as root.
  • CVE-2026-16527: An unauthenticated remote attacker can bypass access controls by sending crafted requests to the PCP pmproxy /store endpoint. This allows the attacker to overwrite any PMDA metric, leading to arbitrary code execution and system takeover.
  • CVE-2026-16529: A signed integer overflow in the PCP __pmGetPDU() function can be exploited via crafted network packets during PDU processing or SASL negotiation. This permanently blinds the affected daemon, resulting in a total denial of service (DoS) for subsequent packet reads.
  • CVE-2026-16530: A flaw was found in the PCP (Performance Co-Pilot) `pmproxy` service. A remote attacker can exploit a vulnerability in the `pmLogLoadInDom()` function by sending a specially crafted request. This bypasses a critical bounds check, which can lead to the `pmproxy` service crashing, causing a Denial of Service (DoS). Additionally, this flaw may enable the leakage of sensitive information from the system's memory.
  • CVE-2026-16531: An unauthenticated remote attacker can exploit a path traversal vulnerability in the PCP pmproxy logger servlet using a crafted hostname. This allows arbitrary file and directory creation, potentially leading to a denial of service.
2 issues postponed or untriaged:
  • CVE-2023-6917: (needs triaging) A vulnerability has been identified in the Performance Co-Pilot (PCP) package, stemming from the mixed privilege levels utilized by systemd services associated with PCP. While certain services operate within the confines of limited PCP user/group privileges, others are granted full root privileges. This disparity in privilege levels poses a risk when privileged root processes interact with directories or directory trees owned by unprivileged PCP users. Specifically, this vulnerability may lead to the compromise of PCP user isolation and facilitate local PCP-to-root exploits, particularly through symlink attacks. These vulnerabilities underscore the importance of maintaining robust privilege separation mechanisms within PCP to mitigate the potential for unauthorized privilege escalation.
  • CVE-2024-3019: (needs triaging) A flaw was found in PCP. The default pmproxy configuration exposes the Redis server backend to the local network, allowing remote command execution with the privileges of the Redis user. This issue can only be exploited when pmproxy is running. By default, pmproxy is not running and needs to be started manually. The pmproxy service is usually started from the 'Metrics settings' page of the Cockpit web interface. This flaw affects PCP versions 4.3.4 and newer.
1 ignored issue:
  • CVE-2024-45770: A vulnerability was found in Performance Co-Pilot (PCP). This flaw can only be exploited if an attacker has access to a compromised PCP system account. The issue is related to the pmpost tool, which is used to log messages in the system. Under certain conditions, it runs with high-level privileges.
Created: 2026-07-30 Last update: 2026-08-29 19:00
AppStream hints: 1 error and 1 warning for pcp-gui high
AppStream found metadata issues for packages:
  • pcp-gui: 1 error and 1 warning
You should get rid of them to provide more metadata about this software.
Created: 2018-06-04 Last update: 2026-02-23 04:00
The package has not entered testing even though the delay is over normal
The package has not entered testing even though the 5-day delay is over. Check why.
Created: 2026-10-12 Last update: 2026-10-22 19:32
version in VCS is newer than in repository, is it time to upload? normal
vcswatch reports that this package seems to have a new changelog entry (version 7.2.3-1, distribution unstable) and new commits in its VCS. You should consider whether it's time to make an upload.

Here are the relevant commit messages:
commit c42b90f5413f93b0365f473bd5d97d7ad6bf5e5a
Merge: 43780fa6 4831e68b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 21 17:51:22 2026 +1100

    Merge pull request #2770 from kmcdonell/wip
    
    macOS fixups

commit 4831e68b9ceda71c77085b58a6f74dbbc46fd4a1
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 21 16:50:22 2026 +1100

    improvements from @coderabbitai
    
    In the context of PR #2770.

commit a7f94a677fb549b06ed9c770b4a4075d3b58492e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 21 11:54:32 2026 +1100

    admin/pcp-daily: dodge stderr from virsh
    
    ... when it is installed, but not configured ... nothing to report,
    nothing to see.

commit 10c33932c5e24b0f3b77a38ce11272c9c6528a33
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 21 11:49:07 2026 +1100

    qa/admin/package-lists/Darwin+27+arm64: new package list
    
    And some script updates for Darwin 27 (aka macOS Golden Gate).

commit 73aed9f404d8759b6e5c3d1b5319a38e4cf5cd43
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 21 07:48:17 2026 +1100

    qa/admin/package-lists/Darwin+25+arm64: package list updates
    
    and manifest update to include bison from Homebrew, not macOS
    base install.

commit dff18450beb3e046747f054e832abf2aa6d41ece
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 21 07:26:13 2026 +1100

    src/pmlogger/utilproc.sh: revert introduction of __realpath() function
    
    This was just a bad idea and is causing pmlogger_check to fail
    on at least macOS, see
    https://github.com/performancecopilot/pcp/issues/2769
    
    We use realpath(1) elsewhere in the build and QA so we should
    just use that in utilproc.sh.
    
    This commit reverts and replaces commit 01ed7a4fe.

commit 869cc4055f3edbb70e63f5d31476ac816cffde1e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Oct 20 10:41:13 2026 +1100

    qa/admin/pcp-daily: add -f for poweroff on some VMs
    
    vm08 (CentOS 7) was hanging at shutdown without this.

commit d05820a9c8b98ee92c2f720b7587294feb5d1e4c
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Oct 20 10:40:34 2026 +1100

    qa/admin/package-lists/NetBSD+10.1+i386: package list update

commit 43780fa6dc59cc035328d0b3418cc6fb16a99d59
Merge: 41af059d 55e37cce
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 19 08:08:38 2026 +1100

    Merge pull request #2767 from kmcdonell/wip
    
    fix macOS build

commit 55e37ccedf36a37415e3d784c54dafc49dc18c41
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 19 07:14:39 2026 +1100

    qa/admin/pcp-daily: change from $PCP_ECHO_PROG to printf(1)

commit 1d9c744cd7592d06aad0566413259599c0dcad10
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 19 07:12:50 2026 +1100

    configure.ac: make sure $yacc_prog is a full pathname ...
    
    Even in the unlikely event that we're not using bison.

commit 2d5092117906fd9ec40901179edafef2ec9f526d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 19 07:11:57 2026 +1100

    src/pmcd/rc_pmcd: guard against startup race for pmda.auto.update lock file

commit 9c16142ce9cacd1a6587b744e2192a1585d0aff3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Oct 18 16:26:32 2026 +1100

    macOS build: add bison to Brewfile and tweak Darwin 25 package list

commit aaae48a8e32a3acc2cf3b2ef2687f12d79690ac2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Oct 18 16:05:02 2026 +1100

    macOS build: recent libpcp changes mean we need homebrew bison
    
    The old and mouldy bison that ships with macOS won't cut the mustard for
    the %destructor pragmas recently added to derive_parser.y.in in libpcp.
    
    But we need to dodge the macOS installed one and dig out the homebrew one
    that is a keg-only install and so the executable is hidden in a secret bin
    directory that configure.ac needs to know how to find.

commit 38c187af4ecd0ea624f9567bc3ecb02589d83a7d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Oct 18 16:01:20 2026 +1100

    src/pmcd/rc_pmcd: remove stale pmda.auto.update lock file
    
    Seen on macOS ... and once it is there, all subsequent PMDA
    Install or Remove operations fail.

commit a27f513577a2d601fdc280fc98a5e54f6f40676c
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Oct 18 15:59:20 2026 +1100

    qa/admin/pcp-daily: replace echo -n (for macOS)

commit 41af059d081bfa05c6d27490f61739a977cd2246
Merge: 3751a9d1 a671496d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Oct 18 08:00:28 2026 +1100

    Merge pull request #2766 from kmcdonell/wip
    
    QA and small changes for linux PMDA and pmlogger management scripts

commit a671496d55a30b2e844a928afaaeebbf4aca2ebe
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Oct 18 06:55:51 2026 +1100

    src/pmdas/linux/add_netstat_field: add exit status logic
    
    1 (default) for all errors, 0 for success

commit 2a2cee3ab059a2a98f03da2a6d3e2e0e65b0ddb5
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Oct 18 06:53:41 2026 +1100

    qa/admin/qa-summary: fix mac, mac-fed and mac-deb abbreviations and heading fields

commit 01ed7a4fe3884925b1ab47255a72ef4981d7ed82
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Oct 17 16:49:19 2026 +1100

    misc: improvements suggested by coderabbitai in the context of PR #2766

commit 627234718ab153d7b6ceb24fe91e7f455a367af5
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 16 08:41:11 2026 +1100

    Update src/pmlogger/utilproc.sh
    
    Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

commit 486ee6e2f21a5529608c7eeffc4633a22fc52a1f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 16 07:39:00 2026 +1100

    qa/2113: filter away differences in regexp error message text
    
    Problem seen on vm33 (OpenBSD 7.9).

commit cc5b974d5641fc0e22536aff3c85b2e38ea33c58
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 16 07:06:49 2026 +1100

    linux PMDA: add a bunch of new MPTcpExt fields for networking metrics
    
    Seen on vm12 (Fedora Rawhide).

commit faf7933f6afdad50ee49475ff33e1ac831f928c3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 16 07:06:12 2026 +1100

    src/pmdas/linux/add_netstat_field: extension to allow > 1 field on command line

commit 4939166b1891c43d4044fcab92029ab9544dc83c
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 16 07:04:46 2026 +1100

    qa/2110: need $sudo with pminfo -L
    
    Else cannot access dev mapper control file.
    
    Seen on vm12 (Fedora Rawhide).

commit 3323ba2a3898d8592d806b4f733735c652e1a94d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 16 06:05:47 2026 +1100

    qa: package list and small qa test changes for MX Linux 25.3

commit 3cf1c733708694fc77da85cd22ac3d78991b1bfa
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 16 06:05:09 2026 +1100

    ci-qa/update: keep tmp.* files for debugging with -d

commit 65a4a444c71fdc794c90bcbeb22fff32b43eebe0
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Oct 15 22:07:00 2026 +1100

    qa/1429: tweak filter

commit 7e437565915c07053a583a8cf4926d541b853598
Merge: 58c3eef1 3751a9d1
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Oct 15 08:41:33 2026 +1100

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit 58c3eef1b9c979b183d048b219af67ae41f0477b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Oct 15 08:37:10 2026 +1100

    qa/1187: refactor to dodge stty hanging issue
    
    On some platforms (notably bozo when running check from an interactive
    shell), qa/1187 was hanging in stty(1).
    
    - split the stty-part out from qa/1187 into the (new) qa/1733
    - refactor some of the qa/1733 logic and reduce output chatter
    - in qa/1733 add _notrun if stdout is not a tty (this seems to be the
      trigger for the hang scenario)

commit bc4e4bc1fc13bb232bf1c3b52f57866f54f50193
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Oct 15 08:35:45 2026 +1100

    qa/common.qt: add another Qt warning to filter_qt()

commit 3751a9d148d5b83af6e9d51a3b889ecb67772a13
Author: lmchilton <lauren.chilton26@gmail.com>
Date:   Tue Oct 13 13:53:56 2026 -0400

    Resolves: RHEL-130497 fix for too strict parsing, specifically handling empty scope in json object

commit f2ed83d0d0488d5590637a41f90a1ea551932c06
Merge: f2559055 5ef01f17
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 14:58:02 2026 +1100

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit f2559055bb3c0cd41da06b7a447e31344152d4cc
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 14:50:00 2026 +1100

    src/pmlogger/utilproc.sh: fix for directory matching in _find_matching_pmlogger()
    
    The combination of shell expansion in the control file lines and symbolic
    links meant this routine was trying to compare a directory name from the
    control file that had symbolic links resolved with a directory in the
    pmlogger statefile that did not.
    
    Blew up on bozo where the non-primary logger is logging to
    /gpfs/data/root/pcp/... via a symlink at /gpfs and the canoncial
    directory name is really /mnt/bozo-1/gpfs/data/root/pcp/...
    
    The end result was that pmlogger_janitor was incorrectly killing off the
    non-primary pmlogger during QA runs.

commit e6175b0c1323b412c325292292c54c26fcae2c8a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 14:49:15 2026 +1100

    qa/common.check: rework dodging systemctl rate limitation

commit 4241eaf471149c819dd19811050a990c06badb65
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 14:48:46 2026 +1100

    qa/1763: add _triage_wait_point to help debugging failures

commit b8d22320cdb9b7852bc597b470f0897f170863c5
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 06:23:39 2026 +1100

    qa/819: filter tweak for expected number of metrics for elasticsearch PMDA

commit 420c18936d25b517940360fa038e8ee6bca3de85
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 06:22:28 2026 +1100

    src/zshrc/_pcp: add -G and -N for pmseries

commit a74dd744c8fea885caa48ecf9b7f6d64262d785a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 06:22:00 2026 +1100

    qa/admin/package-lists/OpenBSD+7.7+amd64: package list update

commit 5ef01f172b74e7214c86b004cfa8f4e8d26546fe
Merge: ce12343f 0325e8d2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 14 06:20:41 2026 +1100

    Merge pull request #2757 from rmetrich/asan__9
    
    derive_parser: fix strdup'd token strings leaked on error paths

commit 0325e8d2ee72cebbd6dcace5dfdef9612a6b2150
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Fri Oct 9 10:38:24 2026 +0200

    derive_parser: reclaim discarded semantic values with %destructor
    
    Generalizes the per-error-path frees from 7ae26498cd.  Those only
    cover the rules that happen to have an error production; they cannot
    reach the values bison discards on its own.  Declare
    
        %destructor { free($$); }           <s>
        %destructor { free_expr_ctx($$); }  <n>
    
    so the parser reclaims the lookahead token that triggered a syntax
    error, every symbol popped while resynchronizing on the error token,
    and everything left on the stack at YYABORT.
    
    Note bison explicitly does _not_ run destructors for the symbols of
    the rule whose action called YYERROR or YYABORT, so those rules keep
    cleaning up after themselves and the two mechanisms compose.
    
    Supporting changes:
    
    - the "derive_error(NULL); return -1;" paths become YYABORT, so bison
      unwinds the stack.  A raw return from an action leaks every node
      built so far.  No caller uses derive_parse()'s return value, they
      all test parse_tree, so this is a no-op for them.
    
    - mkconst() and novalue() no longer build their node in a mid-rule
      action.  Bison cannot attach a %destructor to a mid-rule value, so
      a node parked there is lost if the speclist does not parse.  The
      node is built in the final action instead, which also leaves the
      number string owned by the parser stack (and so covered by the <s>
      destructor) for the whole of the speclist.  As a side effect both
      "mkconst(1)" and "mkconst(1, bogus=1)" are handled by the one
      free($3) in the error rule, so the mkconst_np tracking static
      suggested during review is not needed.
    
    - "$$ = NULL" is added to the YYERROR rules.  Bison cannot tell they
      never reduce and otherwise warns that the <n> destructor could see
      an unset $$ (65 new warnings against a baseline of none).
    
    - error actions use free_expr_ctx() rather than free_expr(), so a
      discarded matchinst() tree gets its compiled regex regfree()d.
    
    - reset_parser_state() clears lexpeek, in_matchinst, specflags and
      specmeta before each parse.  These file-scope statics are only
      cleared on the success paths of the productions that use them, so
      after a failed parse they leaked and bled into the next expression
      parsed in the process: a stale specmeta was grafted onto an
      unrelated mkconst(), stale META_* flags overrode the metadata it
      inherited, and a stale in_matchinst made the lexer read '/' as a
      regex delimiter instead of division.
    
    - two meta= in the one speclist no longer leaks the first node.
    
    - the anon() illegal type branch no longer falls through to use and
      return the node it just freed.
    
    Also fix the ownership of the compiled regex on teardown.
    bind_expr() shallow copies the regex_t into the per-context copy it
    builds for a global derived metric, so only the registered[] node
    owns the compiled buffers.  free_expr() must therefore not
    regfree(), and free_expr_ctx() must -- which makes free_expr_ctx()
    the right call for the registered[] tree in pmUnregisterDerived(),
    and for a per-context metric, which bind_expr() binds in place
    rather than copying.  Three call sites had it backwards and leaked
    884 bytes per registered matchinst() metric (the regex, plus the
    N_PATTERN value string, which free_expr() also skips).  The rule is
    now spelled out above free_expr().
    
    qa/2113 checks the diagnostics and the cross-expression state
    isolation; qa/2114 checks the same expressions, plus the regex
    teardown, for leaks under valgrind.  Note 2114 deliberately bundles
    many expressions into one config: the parser keeps its most recent
    allocations in np, specmeta and derive_lval, so the last thing a
    failed parse leaks is still reachable at exit and one expression per
    run reports nothing.
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

commit aac4469ac3dafc4375e6c4e2fd7e41ac61810e1a
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Fri Oct 9 10:31:21 2026 +0200

    derive_fetch: fix read off the end of an aliased pmid_ctl
    
    valgrind, fetching any derived metric from an archive:
    
    Invalid read of size 4
       at __dmpostvalueset (derive_fetch.c:2021)
       by __dmpostfetch (derive_fetch.c:2260)
       by __pmFinishResult (fetch.c:98)
       by __pmFetch (fetch.c:242)
       by pmFetch_ctx (fetch.c:294)
       by pmFetch (fetch.c:332)
     Address 0x554d098 is 0 bytes after a block of size 8 alloc'd
       at malloc
       by __pmLogFetch (logutil.c:2385)
    
    When a requested metric is absent from a log record, __pmLogFetch()
    points vset[j] at a pmid_ctl struct that has only pmid and numval
    fields.  Reading valfmt from it would be past the end of that
    allocation.  There are no values anyway, so PM_VAL_INSITU is a safe
    placeholder.
    
    __dmpostvalueset() hoisted the valfmt read out of the loop over the
    values, so it ran even when there are no values to copy.  Only read
    it when numval > 0, matching what __pmLogFetchInterp() already does
    in interp.c, and use PM_VAL_INSITU otherwise -- valfmt carries no
    information when there are no values, and the consumers agree:
    __pmFreeResultValueSets() guards on "numval > 0 && valfmt ==
    PM_VAL_DPTR", and interp.c leaves valfmt uninitialized altogether
    for the numval == 0 case it builds.
    
    Found while leak-checking the derived metrics parser; it predates
    that work and is unrelated to it.
    
    qa/2115 is a new valgrind test covering the derived metric fetch
    path.  f.nomatch is the case that matters, a matchinst() that
    matches no instances and so comes back with numval == 0; the others
    check that values are still copied correctly alongside it.
    
    Co-Authored-By: Ken McDonell <kenj@kenj.id.au
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

commit 52309c0bbdfd8f762ef846c8efb3b21b97c85973
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 12 16:26:20 2026 +1100

    qa: cleanup group -g pmproxy test metadata

commit e5e8ccea7f5c1c9b0a1222dd65a67eaa6739d1d3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 12 16:25:00 2026 +1100

    qa/1611: only run cleanup() actions once ...
    
    Trying to isolate qa/1616 failures (that one runs qa/1611 --valgrind).

commit bca4750f3d675d5cdb2b99d67ef2bee31112680a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 12 16:24:05 2026 +1100

    qa/grind: date --help output changed ... rework heuristic

commit 3dce2613728a0c5d1197fc82ee9a6761b9d2b59c
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 12 10:55:59 2026 +1100

    qa/023: restart pmie service in _cleanup() if it was running at the start

commit 12f27457cdcbec4020fb541bc989fbf7158ad5c3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 12 07:56:57 2026 +1100

    qa/admin/qa-summary: fixes for CentOS (-stream10)
    
    Shortname in report was NQR.

commit fd190d4e35eae3e5e007c39aa948fd9621f4fa15
Merge: f84dbe7c 1b334d7d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 12 07:22:13 2026 +1100

    Merge branch 'main' of https://github.com/kmcdonell/pcp

commit f84dbe7ceadef5cf3e7a5de9d8f9222a667fbda8
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 12 07:04:48 2026 +1100

    qa: mystery solved for pmlogger_daily tests that sometimes fail
    
    This group of tests:
            151 532 1429
    all populate directories with archives to be processed by
    pmlogger_daily and the archives are given names and timestamps
    corresponding to dates and times in the recent (3-5 days) past.
    
    Then the -k option to pmlogger_daily will cull old archives, but this
    depends on find(1) -mtime semantics and if an archive is timestamped
    (for example) 01:30 then find(1) produces different results depending
    if you the test is run today before or after 01:30.
    
    Consequently there was a window (not the same for all tests, but
    similar) just after midnight where if the test was run it would
    fail but would pass later, e.g. when trying to triage the fault.
    This explains both the "random but repeating" failures in the QA Farm
    and the "all-pass-yesterday-and-all-fail-today" failures in github CI.
    
    Apply a check and make these tests _notrun if the current time
    is in the critical window.

commit 1b334d7d473b2aeeaf076d2c6b57697bd15a9b9b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Oct 10 08:23:57 2026 +1100

    qa/1334: deal with non-determinism in hostname vs short hostname vs fqdn
    
    Neither hostname(1) (with no options, -s and -f) nor pmhostname(1)
    produce deterministic results.
    
    So try 'em all and sort results longest to shortest before filtering.

commit f02924ee786e7d0a6f7d043754a161d4712ca470
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Oct 10 08:22:13 2026 +1100

    qa/870: with --check, try to restart pmlogger if not running
    
    Attempt to prevent cascading failures from callback.

commit c52d90d54c915104f6512d4f9ea6abadda33077d
Merge: bca63325 ce12343f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Oct 10 05:54:31 2026 +1100

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit ce12343f4efbc0c59c5b7b196b3029d21a8013af
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Mon Oct 5 13:00:28 2026 +0200

    ASAN and UBSAN compilation support
    
    configure:
     - add "--enable-asan", requires libasan
     - add "--enable-ubsan", requires libubsan
    
    Caveats:
     - static libraries and binaries have ASAN/UBSAN disabled
    
    ---
    
    At runtime, ASAN and/or UBSAN can be enabled for a binary through
    setting environment variables, e.g.
    
    export ASAN_OPTIONS=quarantine_size_mb=512:max_free_fill_size=4096:\
    strict_string_checks=1:detect_stack_use_after_return=1:\
    check_initialization_order=1:strict_init_order=1:halt_on_error=1:\
    detect_leaks=1:log_path=/tmp/pmproxy-asan.log
    
    export UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=0:\
    log_path=/tmp/pmproxy-ubsan.log
    
    Note that for pmproxy as least, the full UBSAN report will be pushed to
    pmproxy.log anyway for some reason, it looks like it's due to how stderr
    is being redirected.
    
    Signed-off-by: Renaud Métrich <rmetrich@redhat.com>

commit f44620472d9081587f0f62807f33accbc68f8e5a
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Tue Oct 6 10:34:42 2026 +0200

    coderabbitai comment
    
    https://github.com/performancecopilot/pcp/pull/2757#pullrequestreview-5425698655

commit 7ae26498cda8a0699b6c0c306b50a0f24b4ac5d7
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Tue Oct 6 10:14:48 2026 +0200

    derive_parser: fix strdup'd token strings leaked on error paths
    
    ASAN report:
    
    Direct leak of 18 byte(s) in 3 object(s) allocated from:
        #0 0x7f04d4af61a8 in strdup (/lib64/libasan.so.8+0xf61a8) (BuildId: 704906ef2c282931655ba79621782b22a4eaea8a)
        #1 0x7f04d36cb249 in derive_lex [...]/src/libpcp/src/derive_parser.y:5194
        #2 0x7f04d36e9866 in derive_parse.isra.0 [...]/src/libpcp/src/derive_parser.tab.c:5644
        #3 0x7f04d36beb7a in registerderived [...]/src/libpcp/src/derive_parser.y:2026
        #4 0x7f04d36e37cd in __dminit_configfile [...]/src/libpcp/src/derive_parser.y:2610
        #5 0x7f04d36e37cd in __dminit_component.constprop.0 [...]/src/libpcp/src/derive_parser.y:175
        #6 0x7f04d36e1cc6 in __dminit_component.constprop.0 [...]/src/libpcp/src/derive_parser.y:208
        #7 0x7f04d36964ba in __dminit_parse [...]/src/libpcp/src/derive_parser.y:260
        #8 0x7f04d36c07ca in __dminit [...]/src/libpcp/src/derive_parser.y:339
        #9 0x7f04d36c3f04 in __dmopencontext [...]/src/libpcp/src/derive_parser.y:3930
        #10 0x7f04d3443bac in pmNewContext [...]/src/libpcp/src/context.c:1406
        #11 0x7f04d43af231 in pmDiscoverInvokeCallBacks [...]/src/libpcp_web/src/discover.c:1961
        #12 0x7f04d43af231 in directory_changed_cb [...]/src/libpcp_web/src/discover.c:2104
        #13 0x7f04d43b2793 in pmDiscoverTraverseArg [...]/src/libpcp_web/src/discover.c:226
        #14 0x7f04d43b2793 in changed_callback [...]/src/libpcp_web/src/discover.c:2181
        #15 0x7f04d4398adf in fs_change_callBack [...]/src/libpcp_web/src/discover.c:510
        #16 0x7f04d48b3d91 in uv__inotify_read.isra.0 /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:2647
    
    (NOTE: the line numbers above differ because it was encountered on RHEL10.2 PCP 7.0.3)
    
    The lexer allocates L_NAME, L_STRING, L_INTEGER and L_INSTNAME tokens
    via strdup() and stores them in derive_lval.s. Five grammar rule error
    paths discard these strings without freeing them.
    
    1. "| L_NAME error" — $1 (the name string) is held on the parser stack
       when the error reduction fires; it is not freed before YYERROR.
    
    2. "| L_MKCONST L_LPAREN L_INTEGER error" — $3 (the integer string) is
       on the stack and is not freed before YYERROR.
    
    3. "L_TYPE L_ASSIGN specval" — the else branch calls return -1 after
       gramerr() but the free($3) that follows the if/else is never reached.
    
    4. "L_SEMANTICS L_ASSIGN specval" — same pattern as the type rule.
    
    5. "L_UNITS L_ASSIGN specval" — same pattern: free(errmsg) is called
       but free($3) is not before return -1.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Renaud Métrich <rmetrich@redhat.com>

commit c260a39030bad4aedcb0bbb203b86b90fdf9f6b0
Merge: 13f7c834 ce360eff
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 9 10:29:28 2026 +1100

    Merge pull request #2756 from rmetrich/ubsan__8
    
    e_labels: fix UBSAN misaligned loads in __pmLogLoadLabelSet

commit 13f7c834d3f768224b4e7b44e1bfe4a0f013a068
Merge: 91c2db55 1c0f07ae
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 9 10:26:09 2026 +1100

    Merge pull request #2758 from rmetrich/asan__10
    
    labels: fix double-free in __pmDupLabelSets on allocation failure

commit bca63325c7a7d4621880bbbaf10dd8e976869464
Merge: 72feb617 91c2db55
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 9 07:13:30 2026 +1100

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit 91c2db5518e3ffc6e1a7aebc5e73ea0c30aba8ee
Merge: 9a1b9def ebde43c4
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Oct 9 06:51:16 2026 +1100

    Merge pull request #2755 from rmetrich/ubsan__7
    
    logmeta: fix UBSAN left shift of negative value in __pmLoadTimestamp

commit 72feb6173e3c58bff4ed7525adc4536932cea414
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Oct 8 08:17:03 2026 +1100

    qa/1131: filter help text that maybe different on various platforms

commit ad675d868c97047a4d2ac194d3a593c5ee394837
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Oct 8 08:15:34 2026 +1100

    qa/113: dodge /tmp if this is a disk-backed filesystem
    
    The test updates files in /tmp which makes the reconciliation of
    space used|free brittle.

commit 1ee8ca6bdf6b500f0fa770d7f8b1a48805f79031
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Oct 8 08:14:46 2026 +1100

    package list updates: mostly *BSD for libvirt
    
    And some NetBSD tweaks.

commit b6ba5c6a24bc153343af5aeb345071a16fbcce8a
Merge: 6ddc98a4 9a1b9def
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 21:21:27 2026 +1100

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit 9a1b9def1fc30537aeb4baf7ebb71954973ab02c
Merge: 0d181a1e 3f28cfc7
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 21:20:12 2026 +1100

    Merge pull request #2762 from kmcdonell/gethostname
    
    gethostname - audit and rework

commit 3f28cfc7fc88f0ff71a5eef8a95a04ea026c8108
Merge: 2d35efb8 3f359732
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 16:58:59 2026 +1100

    Merge branch 'gethostname' of https://github.com/kmcdonell/pcp into gethostname

commit 2d35efb8d65170bd7e8c52ea5b696838d576b214
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 16:57:59 2026 +1100

    src/libpcp/src/context.c: avoid NULL dereference after gethostname() failure

commit 201fb2777c5dabd63f6f0bf449e2a3b3129f3655
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 16:51:37 2026 +1100

    src/libpcp/src/util.c: fix missing UNLOCK after gethostname() change

commit 3f359732bace7ee936e4f07d10f3bc2469105638
Merge: cb6b2574 0d181a1e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 16:37:33 2026 +1100

    Merge branch 'performancecopilot:main' into gethostname

commit 6ddc98a40593d2a82f11ef969e8472e0b9520d3f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 16:32:19 2026 +1100

    src/libpcp_qwt/src/libpcp_qwt.pro: fix for Ubuntu 24.04 (bozo)
    
    For some reason, not known to Claude or I, the build recently
    broke because libpcp_qwt did not export the symbols pmchart was
    expected, and the symbols were not there because the code was
    never compiled!
    
    Making -DQWT_MOC_INCLUDE=1 unconditional for all build types
    fixed this.

commit 0d181a1ea7de33a77ef20d8ad339e968c78e13b6
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Oct 7 15:32:24 2026 +1100

    build: add gitignore file for pmimprot lib on macos

commit caa2da898c7d530a1485e6a77a8003e82f1da49a
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Oct 7 15:32:04 2026 +1100

    docs: update version number and next planned release date

commit 725a6e7ff4b9461f3ea6da265d1e1370d9d102fb
Merge: 87fc51f5 79708000
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 14:59:18 2026 +1100

    Merge pull request #2761 from kmcdonell/nextrel
    
    QA updates held over from last release

commit 797080009a6069114a3be7e878e2e28776e5cca0
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 14:57:07 2026 +1100

    src/libpcp_web/install-dev: better error handling control and exit status

commit 55a510e08d18a6aed2f4cf64db406d597da3b333
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 14:55:22 2026 +1100

    src/pmdas/bpftrace/examples: keep raw files from github
    
    So we can isolate problems as (a) from github or (b) from our local
    rewriting.
    
        modified: src/pmdas/bpftrace/examples/Download
        new file: src/pmdas/bpftrace/examples/biolatency-v27.bt.raw
        new file: src/pmdas/bpftrace/examples/runqlat-v27.bt.raw

commit b1905348834c00eec35dc0b97b85086808743f34
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 13:42:01 2026 +1100

    install-dev: update scripts for *BSD where make is not gmake
    
        modified:   src/libpcp/src/install-dev
        modified:   src/libpcp_web/install-dev

commit 6e0283ea7e23e1edb152bcad41ffb0e3b5c2e30a
Merge: 8b632443 6525a5c9
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 13:37:40 2026 +1100

    Merge branch 'main' into nextrel

commit 6525a5c91ef9e5288e6165b25fde7ae5819677df
Merge: dc4077fc 87fc51f5
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 13:32:49 2026 +1100

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit 8b632443fb63363f09708f719ae7643b994d05ce
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 06:56:44 2026 +1100

    src/pmsearch/.gitignore: add a couple of build by-products

commit 59367a2d1deb1ca76ffe9db5733553540fad8f4e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 06:55:30 2026 +1100

    qa/group: add 1211 to sanity group
    
    Provides pmseries coverage in CI via -g sanity QA run.

commit 2f53a1d0357f60381294254663bbd4522119bacb
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 06:55:00 2026 +1100

    qa/1742: tweak filter

commit 5938df6c8f007c9bc312a4897f984aef3650f77d
Merge: c2a2b701 dc4077fc
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 06:54:14 2026 +1100

    Merge branch 'main' into nextrel

commit dc4077fcce7a411cfd89b6187aeee7272f652e46
Merge: 9a6a70a2 aa1ce942
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Oct 7 06:53:06 2026 +1100

    Merge branch 'main' of https://github.com/performancecopilot/pcp

commit 1c0f07ae88e90f2968401f8489543c19113bbd7b
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Tue Oct 6 10:19:47 2026 +0200

    labels: fix double-free in __pmDupLabelSets on allocation failure
    
    When __pmDupLabelSets is called with a source that points directly into
    the archive metadata hash (as returned by __pmLogLookupLabel before the
    caller makes a copy), a partial allocation failure leaves unprocessed
    entries with their json/labels/hash pointer fields still aliasing the
    source (archive hash).
    
    The cleanup path then calls pmFreeLabelSets(sets, nsets), which frees
    those aliased pointers. Later, logFreeHashLabels frees the same pointers
    again as it tears down the archive hash, producing the double-free caught
    by ASAN:
    
      ==1391192==ERROR: AddressSanitizer: attempting double-free on 0x502000434410 in thread T0:
        #0 0x7f75656fb1a8 in free.part.0 (/lib64/libasan.so.8+0xfb1a8) (BuildId: 704906ef2c282931655ba79621782b22a4eaea8a)
        #1 0x7f7564344666 in logFreeHashLabels [...]/src/libpcp/src/logutil.c:577
        #2 0x7f7564344666 in logFreeMeta [...]/src/libpcp/src/logutil.c:660
        #3 0x7f7564347f90 in __pmArchCtlFree [...]/src/libpcp/src/logutil.c:3400
        #4 0x7f756423e847 in pmDestroyContext [...]/src/libpcp/src/context.c:1986
        #5 0x7f756517fd31 in pmDiscoverFree [...]/src/libpcp_web/src/discover.c:165
        #6 0x7f7565180054 in pmDiscoverPurgeDeleted [...]/src/libpcp_web/src/discover.c:259
        #7 0x7f75651b27e8 in changed_callback [...]/src/libpcp_web/src/discover.c:2193
        #8 0x7f7565198adf in fs_change_callBack [...]/src/libpcp_web/src/discover.c:510
        #9 0x7f7565d72d91 in uv__inotify_read.isra.0 /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:2647
        #10 0x7f7565d7354c in uv__io_poll /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:1546
        #11 0x7f7565d5d9f1 in uv_run /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/core.c:460
        #12 0x56328407ea93 in main_loop [...]/src/pmproxy/src/server.c:949
        #13 0x56328407b60a in main [...]/src/pmproxy/src/pmproxy.c:473
        #14 0x7f756405158d in __libc_start_call_main (/lib64/libc.so.6+0x2a58d) (BuildId: cc6959d636202b0e1d6e17b273bf4060ec9265e5)
        #15 0x7f7564051648 in __libc_start_main_alias_2 (/lib64/libc.so.6+0x2a648) (BuildId: cc6959d636202b0e1d6e17b273bf4060ec9265e5)
        #16 0x56328407c014 in _start ([...]/src/pmproxy/src/pmproxy+0xd014) (BuildId: 0ff0d5440313ebe8225d2d57af1546f9d46c6556)
    
      0x502000434410 is located 0 bytes inside of 10-byte region [0x502000434410,0x50200043441a)
      freed by thread T0 here:
        #0 0x7f75656fb448 in realloc.part.0 (/lib64/libasan.so.8+0xfb448) (BuildId: 704906ef2c282931655ba79621782b22a4eaea8a)
        #1 0x7f756515579b in hi_realloc deps/hiredis/alloc.h:66
        #2 0x7f756515579b in sdsMakeRoomFor deps/hiredis/sds.c:223
        #3 0x7f7565161fe4 in sdscatfmt deps/hiredis/sds.c:596
        #4 0x7f75650d7fd9 in keyMapRequest [...]/src/libpcp_web/src/schema.c:166
        #5 0x7f75650d7fd9 in keyGetMap [...]/src/libpcp_web/src/schema.c:204
        #6 0x7f75650d9bc4 in annotate_metric [...]/src/libpcp_web/src/schema.c:504
        #7 0x7f756427f1f0 in stash_label [...]/src/libpcp/src/labels.c:444
        #8 0x7f7564296b86 in __pmMergeLabelSets [...]/src/libpcp/src/labels.c:905
        #9 0x7f75642a33df in pmMergeLabelSets [...]/src/libpcp/src/labels.c:1011
        #10 0x7f756521607b in metric_labelsets.constprop.0 [...]/src/libpcp_web/src/util.c:223
        #11 0x7f75650db059 in series_metric_label_mapping [...]/src/libpcp_web/src/schema.c:671
        #12 0x7f75650f27dc in keys_series_metric [...]/src/libpcp_web/src/schema.c:728
        #13 0x7f75650f27dc in server_cache_metric [...]/src/libpcp_web/src/load.c:45
        #14 0x7f75650f27dc in series_cache_update [...]/src/libpcp_web/src/load.c:502
        #15 0x7f756517e1c8 in pmDiscoverInvokeValuesCallBack [...]/src/libpcp_web/src/discover.c:749
        #16 0x7f75651af9e2 in process_logvol [...]/src/libpcp_web/src/discover.c:1910
        #17 0x7f75651af9e2 in pmDiscoverInvokeCallBacks [...]/src/libpcp_web/src/discover.c:2057
        #18 0x7f75651af9e2 in directory_changed_cb [...]/src/libpcp_web/src/discover.c:2104
        #19 0x7f75651b2793 in pmDiscoverTraverseArg [...]/src/libpcp_web/src/discover.c:226
        #20 0x7f75651b2793 in changed_callback [...]/src/libpcp_web/src/discover.c:2181
        #21 0x7f7565198adf in fs_change_callBack [...]/src/libpcp_web/src/discover.c:510
        #22 0x7f7565d72d91 in uv__inotify_read.isra.0 /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:2647
    
      previously allocated by thread T0 here:
        #0 0x7f75656fb448 in realloc.part.0 (/lib64/libasan.so.8+0xfb448) (BuildId: 704906ef2c282931655ba79621782b22a4eaea8a)
        #1 0x7f756515579b in hi_realloc deps/hiredis/alloc.h:66
        #2 0x7f756515579b in sdsMakeRoomFor deps/hiredis/sds.c:223
        #3 0x7f7565161fe4 in sdscatfmt deps/hiredis/sds.c:596
        #4 0x7f75650d7fd9 in keyMapRequest [...]/src/libpcp_web/src/schema.c:166
        #5 0x7f75650d7fd9 in keyGetMap [...]/src/libpcp_web/src/schema.c:204
        #6 0x7f75650d9bc4 in annotate_metric [...]/src/libpcp_web/src/schema.c:504
        #7 0x7f756427f1f0 in stash_label [...]/src/libpcp/src/labels.c:444
        #8 0x7f7564296b86 in __pmMergeLabelSets [...]/src/libpcp/src/labels.c:905
        #9 0x7f75642a33df in pmMergeLabelSets [...]/src/libpcp/src/labels.c:1011
        #10 0x7f756521607b in metric_labelsets.constprop.0 [...]/src/libpcp_web/src/util.c:223
        #11 0x7f75650db059 in series_metric_label_mapping [...]/src/libpcp_web/src/schema.c:671
        #12 0x7f75650f27dc in keys_series_metric [...]/src/libpcp_web/src/schema.c:728
        #13 0x7f75650f27dc in server_cache_metric [...]/src/libpcp_web/src/load.c:45
        #14 0x7f75650f27dc in series_cache_update [...]/src/libpcp_web/src/load.c:502
        #15 0x7f756517e1c8 in pmDiscoverInvokeValuesCallBack [...]/src/libpcp_web/src/discover.c:749
        #16 0x7f75651af9e2 in process_logvol [...]/src/libpcp_web/src/discover.c:1910
        #17 0x7f75651af9e2 in pmDiscoverInvokeCallBacks [...]/src/libpcp_web/src/discover.c:2057
        #18 0x7f75651af9e2 in directory_changed_cb [...]/src/libpcp_web/src/discover.c:2104
        #19 0x7f75651b2793 in pmDiscoverTraverseArg [...]/src/libpcp_web/src/discover.c:226
        #20 0x7f75651b2793 in changed_callback [...]/src/libpcp_web/src/discover.c:2181
        #21 0x7f7565198adf in fs_change_callBack [...]/src/libpcp_web/src/discover.c:510
        #22 0x7f7565d72d91 in uv__inotify_read.isra.0 /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:2647
    
    (NOTE: the line numbers above differ because it was encountered on RHEL10.2 PCP 7.0.3)
    
    Fix: after memcpy, immediately null out the three heap-owned pointer
    fields (json, labels, hash) so that pmFreeLabelSets on any failure path
    only frees memory that was actually allocated by this function. Adjust
    the subsequent empty-set guard to test source->json (the original value)
    instead of target->json (which is now always NULL at that point).
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Renaud Métrich <rmetrich@redhat.com>

commit ce360effc6b3a04a1ca7cc14c436905aae017eff
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Tue Oct 6 10:08:16 2026 +0200

    e_labels: fix UBSAN misaligned loads in __pmLogLoadLabelSet
    
    tbuf is a plain char buffer; the offset k has no alignment guarantee.
    Casting &tbuf[k] to unsigned int * or pmLabel * and dereferencing
    requires 4-byte alignment that k does not provide, yielding:
    
      e_labels.c:295:12: runtime error: load of misaligned address 0x506000011931 for type 'unsigned int', which requires 4 byte alignment
      0x506000011931: note: pointer points here
       75 78 22  7d 00 00 00 01 00 02 05  02 00 09 00 07 00 00 00  b9 96 6e cc b9 96 6e cc  50 19 01 00 60
                    ^
          #0 0x7f30e8683c64 in __pmLogLoadLabelSet [...]/src/libpcp/src/e_labels.c:295
          #1 0x7f30e852c89d in __pmLogLoadMeta [...]/src/libpcp/src/logmeta.c:933
          #2 0x7f30e843a443 in __pmLogOpen [...]/src/libpcp/src/logutil.c:1010
          #3 0x7f30e843a443 in __pmFindOrOpenArchive [...]/src/libpcp/src/context.c:695
          #4 0x7f30e84442cd in initarchive [...]/src/libpcp/src/context.c:947
          #5 0x7f30e84442cd in pmNewContext [...]/src/libpcp/src/context.c:1362
          #6 0x7f30e95af431 in pmDiscoverInvokeCallBacks [...]/src/libpcp_web/src/discover.c:1961
          #7 0x7f30e95af431 in directory_changed_cb [...]/src/libpcp_web/src/discover.c:2104
          #8 0x7f30e95b2993 in pmDiscoverTraverseArg [...]/src/libpcp_web/src/discover.c:226
          #9 0x7f30e95b2993 in changed_callback [...]/src/libpcp_web/src/discover.c:2181
          #10 0x7f30e9598cdf in fs_change_callBack [...]/src/libpcp_web/src/discover.c:510
          #11 0x7f30ea148d91 in uv__inotify_read.isra.0 /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:2647
          #12 0x7f30ea14954c in uv__io_poll /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:1546
          #13 0x7f30ea1339f1 in uv_run /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/core.c:460
          #14 0x556f59155a93 in main_loop [...]/src/pmproxy/src/server.c:949
          #15 0x556f5915260a in main [...]/src/pmproxy/src/pmproxy.c:473
          #16 0x7f30e825158d in __libc_start_call_main (/lib64/libc.so.6+0x2a58d) (BuildId: cc6959d636202b0e1d6e17b273bf4060ec9265e5)
          #17 0x7f30e8251648 in __libc_start_main_alias_2 (/lib64/libc.so.6+0x2a648) (BuildId: cc6959d636202b0e1d6e17b273bf4060ec9265e5)
          #18 0x556f59153014 in _start ([...]/src/pmproxy/src/pmproxy+0xd014) (BuildId: 0ff0d5440313ebe8225d2d57af1546f9d46c6556)
    
    (NOTE: the line numbers above differ because it was encountered on RHEL10.2 PCP 7.0.3)
    
    Replace all pointer-cast dereferences against tbuf[k] with memcpy, which
    is the standard C idiom for unaligned reads and is optimised by GCC/Clang
    into the same load instructions on x86.
    
    Also fix the equivalent patterns for typep/identp/nsets (lines 244-250)
    that carry the same bug but were not yet hit by UBSAN.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) noreply@anthropic.com
    Signed-off-by: Renaud Métrich <rmetrich@redhat.com>

commit ebde43c476e838457c2017b5fd592e7e5262e657
Author: Renaud Métrich <rmetrich@redhat.com>
Date:   Tue Oct 6 09:56:49 2026 +0200

    logmeta: fix UBSAN left shift of negative value in __pmLoadTimestamp
    
    buf is `const __int32_t *` (signed 32-bit). When a network-encoded
    timestamp byte in buf[0]/buf[1] has its sign bit set, the implicit
    widening cast to __int64_t preserves the sign, and shifting a negative
    signed value left is undefined behaviour in C:
    
      logmeta.c:1856:38: runtime error: left shift of negative value -896613526
          #0 0x7fc41191874b in __pmLoadTimestamp [...]/src/libpcp/src/logmeta.c:1856
          #1 0x7fc41183b35e in __pmLogLoadIndex [...]/src/libpcp/src/e_index.c:272
          #2 0x7fc41183b35e in __pmLogOpen [...]/src/libpcp/src/logutil.c:1020
          #3 0x7fc41183b35e in __pmFindOrOpenArchive [...]/src/libpcp/src/context.c:695
          #4 0x7fc4118442cd in initarchive [...]/src/libpcp/src/context.c:947
          #5 0x7fc4118442cd in pmNewContext [...]/src/libpcp/src/context.c:1362
          #6 0x7fc4129af431 in pmDiscoverInvokeCallBacks [...]/src/libpcp_web/src/discover.c:1961
          #7 0x7fc4129af431 in directory_changed_cb [...]/src/libpcp_web/src/discover.c:2104
          #8 0x7fc4129b2993 in pmDiscoverTraverseArg [...]/src/libpcp_web/src/discover.c:226
          #9 0x7fc4129b2993 in changed_callback [...]/src/libpcp_web/src/discover.c:2181
          #10 0x7fc412998cdf in fs_change_callBack [...]/src/libpcp_web/src/discover.c:510
          #11 0x7fc412705d91 in uv__inotify_read.isra.0 /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:2647
          #12 0x7fc41270654c in uv__io_poll /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/linux.c:1546
          #13 0x7fc4126f09f1 in uv_run /usr/src/debug/libuv-1.52.1-1.el10_2.x86_64/src/unix/core.c:460
          #14 0x556da71d3a93 in main_loop [...]/src/pmproxy/src/server.c:949
          #15 0x556da71d060a in main [...]/src/pmproxy/src/pmproxy.c:473
    
    (NOTE: the line numbers above differ because it was encountered on
    RHEL10.2 PCP 7.0.3)
    
    Fix by routing the cast through uint32_t -> uint64_t before the shift.
    This zero-extends (no sign), makes the shift well-defined on an unsigned
    type, and then the final (__int64_t) cast reinterprets the resulting
    bit-pattern as signed — which is the intended semantics.
    
    The redundant & 0xffffffff00000000LL mask is removed as it is a no-op
    once the shift is performed on a 64-bit unsigned value.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Renaud Métrich <rmetrich@redhat.com>

commit c2a2b701a7dbc9a451e1694ae44dec2dd34dc748
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Oct 6 07:55:31 2026 +1100

    bpftrace PMDA: add examples for v27 of bpftrace
    
    Seen on Debian unstable.
    
    Also correct typo in qa/1721 for message to warn about newer version
    of bpftrace.

commit 9a6a70a25bfd3d59267b180e1e09a9b346300d71
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Oct 6 07:36:51 2026 +1100

    qa/1334: tweak hostname(1) usage
    
    pmhostname works better (and hostname -f does not work everywhere).

commit 086e60c1016738dedaefde8721611c4e739b0a8d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Oct 6 07:24:20 2026 +1100

    src/libpcp_web/install-dev: small improvements
    
    - use install-dev in each dir if it exists ... ensures
      multiarch install for libpcp_web updates the "right" DSOs
    - pmsearch is not built on all platforms

commit 568901e78f00ecef9309d1edfefe401eb199cd3e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Oct 6 06:30:21 2026 +1100

    Revert "libpcp_web: fix follow-up Coverity use-after-free issues"
    
    This reverts commit 8dccebd1adffaf5af67e61c6fbcc4cab2b292206.

commit cb6b257494147da65cfe697f66f7a1a033bc06bf
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Oct 5 08:13:56 2026 +1100

    refactor gethostname() uses
    
    Resolves github issue #2745 and follows a full code audit for the issues
    identifed in PR #2744 (libpcp: fix gethostname() buffer length off by one)
    but only partially fixed there.
    
    Changes include:
    
    1. make buffer size MAXHOSTNAMELEN+1, not MAXHOSTNAMELEN
    2. outside declarations use sizeof(buf) instead of MAXHOSTNAMELEN+1
       and sizeof(buf)-1 instead of MAXHOSTNAMELEN to improve readability and
       to reduce noise from grepping for MAXHOSTNAMELEN
    3. check return value from gethostname() and handle errors appropriately
    4. ensure buf[] is null-byte terminated after call to gethostname()
    5. clarify buffer sizing in pmGetHostName(3) man page
Created: 2026-05-23 Last update: 2026-10-22 16:32
Multiarch hinter reports 1 issue(s) low
There are issues with the multiarch metadata for this package.
  • pcp-doc could be marked Multi-Arch: foreign
Created: 2016-09-14 Last update: 2026-10-22 15:30
6 low-priority security issues in trixie low

There are 6 open security issues in trixie.

6 issues left for the package maintainer to handle:
  • CVE-2026-16524: (needs triaging) A command injection flaw in PCP's linux_sockets PMDA allows malicious shell metacharacters via the network.persocket.filter metric. This failed validation lets attackers execute arbitrary commands as the PMDA user when metrics refresh.
  • CVE-2026-16526: (needs triaging) A flaw in the PCP linux_sockets module exposes an unsecured internal connection. An attacker with initial code execution can exploit this to escalate privileges and execute arbitrary commands as root.
  • CVE-2026-16527: (needs triaging) An unauthenticated remote attacker can bypass access controls by sending crafted requests to the PCP pmproxy /store endpoint. This allows the attacker to overwrite any PMDA metric, leading to arbitrary code execution and system takeover.
  • CVE-2026-16529: (needs triaging) A signed integer overflow in the PCP __pmGetPDU() function can be exploited via crafted network packets during PDU processing or SASL negotiation. This permanently blinds the affected daemon, resulting in a total denial of service (DoS) for subsequent packet reads.
  • CVE-2026-16530: (needs triaging) A flaw was found in the PCP (Performance Co-Pilot) `pmproxy` service. A remote attacker can exploit a vulnerability in the `pmLogLoadInDom()` function by sending a specially crafted request. This bypasses a critical bounds check, which can lead to the `pmproxy` service crashing, causing a Denial of Service (DoS). Additionally, this flaw may enable the leakage of sensitive information from the system's memory.
  • CVE-2026-16531: (needs triaging) An unauthenticated remote attacker can exploit a path traversal vulnerability in the PCP pmproxy logger servlet using a crafted hostname. This allows arbitrary file and directory creation, potentially leading to a denial of service.

You can find information about how to handle these issues in the security team's documentation.

Created: 2026-07-30 Last update: 2026-10-07 11:30
Standards version of the package is outdated. wishlist
The package should be updated to follow the last version of Debian Policy (Standards-Version 4.7.4 instead of 4.7.2).
Created: 2025-12-23 Last update: 2026-10-07 09:20
testing migrations
  • This package will soon be part of the auto-openssl transition. You might want to ensure that your package is ready for it. You can probably find supplementary information in the debian-release archives or in the corresponding release.debian.org bug.
  • excuses:
    • Migration status for pcp (- to 7.2.2-1): BLOCKED: Rejected/violates migration policy/introduces a regression
    • Issues preventing migration:
    • ∙ ∙ New but not reproduced on amd64 - info: pcp, pcp-testsuite
    • ∙ ∙ New but not reproduced on arm64 - info: pcp, pcp-testsuite
    • ∙ ∙ New but not reproduced on armhf - info: pcp, pcp-testsuite
    • ∙ ∙ New but not reproduced on i386 - info: pcp, pcp-testsuite
    • Additional info (not blocking):
    • ∙ ∙ Piuparts tested OK - https://piuparts.debian.org/sid/source/p/pcp.html
    • ∙ ∙ 16 days old (needed 5 days)
    • Not considered
news
[rss feed]
  • [2026-10-07] Accepted pcp 7.2.2-1 (source) into unstable (Nathan Scott)
  • [2026-08-30] pcp REMOVED from testing (Debian testing watch)
  • [2026-08-16] pcp 7.2.1-2 MIGRATED to testing (Debian testing watch)
  • [2026-08-14] Accepted pcp 7.2.1-2 (source) into unstable (Nathan Scott)
  • [2026-08-01] pcp 7.2.0-1 MIGRATED to testing (Debian testing watch)
  • [2026-07-30] Accepted pcp 7.2.0-1 (source arm64 all) into unstable (Debian FTP Masters) (signed by: Nathan Scott)
  • [2026-05-29] pcp 7.1.5-1 MIGRATED to testing (Debian testing watch)
  • [2026-05-26] Accepted pcp 7.1.5-1 (source) into unstable (Nathan Scott)
  • [2026-05-25] pcp 7.1.4-1 MIGRATED to testing (Debian testing watch)
  • [2026-05-22] Accepted pcp 7.1.4-1 (source) into unstable (Nathan Scott)
  • [2026-05-02] Accepted pcp 7.1.3-2 (source) into unstable (Nathan Scott)
  • [2026-04-27] pcp 7.1.2-1 MIGRATED to testing (Debian testing watch)
  • [2026-04-24] Accepted pcp 7.1.2-1 (source) into unstable (Nathan Scott)
  • [2026-04-02] pcp 7.1.1-1 MIGRATED to testing (Debian testing watch)
  • [2026-03-30] Accepted pcp 7.1.1-1 (source) into unstable (Nathan Scott)
  • [2026-01-30] pcp 7.1.0-1 MIGRATED to testing (Debian testing watch)
  • [2026-01-28] Accepted pcp 7.1.0-1 (source) into unstable (Nathan Scott)
  • [2025-12-05] pcp 7.0.5-1 MIGRATED to testing (Debian testing watch)
  • [2025-11-21] Accepted pcp 7.0.5-1 (source) into unstable (Nathan Scott)
  • [2025-11-19] Accepted pcp 7.0.4-1 (source) into unstable (Nathan Scott)
  • [2025-11-12] Accepted pcp 7.0.3-1 (source arm64 all) into unstable (Nathan Scott)
  • [2025-11-01] pcp REMOVED from testing (Debian testing watch)
  • [2025-10-16] Accepted pcp 7.0.2-1 (source arm64 all) into unstable (Debian FTP Masters) (signed by: Nathan Scott)
  • [2025-09-23] Accepted pcp 7.0.1-1 (source arm64 all) into unstable (Debian FTP Masters) (signed by: Nathan Scott)
  • [2025-09-01] Accepted pcp 7.0.0-1 (source arm64 all) into unstable (Debian FTP Masters) (signed by: Nathan Scott)
  • [2025-04-21] pcp 6.3.8-1 MIGRATED to testing (Debian testing watch)
  • [2025-04-11] Accepted pcp 6.3.8-1 (source) into unstable (Nathan Scott)
  • [2025-04-07] pcp 6.3.7-1 MIGRATED to testing (Debian testing watch)
  • [2025-03-28] Accepted pcp 6.3.7-1 (source) into unstable (Nathan Scott)
  • [2025-03-17] Accepted pcp 6.3.6-1 (source) into unstable (Nathan Scott)
  • 1
  • 2
bugs [bug history graph]
  • all: 3
  • RC: 0
  • I&N: 3
  • M&W: 0
  • F&P: 0
  • patch: 0
links
  • homepage
  • lintian (2, 12)
  • buildd: logs, cross
  • popcon
  • browse source code
  • other distros
  • security tracker
  • screenshots
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 7.2.1-2build1
  • 2 bugs

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing