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.1.5-1
  • maintainer: PCP Development Team (DMD)
  • uploaders: Ken McDonell [DMD] – Nathan Scott [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
  • testing: 7.1.5-1
  • unstable: 7.1.5-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.1.5-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-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-conf
  • pcp-doc
  • 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-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
Marked for autoremoval on 02 July: #1133063 high
Version 7.1.5-1 of pcp is marked for autoremoval from testing on Thu 02 Jul 2026. It is affected by #1133063. The removal of pcp will also cause the removal of (transitive) reverse dependency: bpftune. You should try to prevent the removal by fixing these RC bugs.
Created: 2026-04-10 Last update: 2026-06-26 21:30
lintian reports 2 errors and 18 warnings high
Lintian reports 2 errors and 18 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2026-05-27 Last update: 2026-05-27 21:01
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
Does not build reproducibly during testing normal
A package building reproducibly enables third parties to verify that the source matches the distributed binaries. It has been identified that this source package produced different results, failed to build or had other issues in a test environment. Please read about how to improve the situation!
Created: 2025-12-05 Last update: 2026-06-26 22:00
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.1.6-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 b94e18afe61761be1c96215b22ca799f84101c89
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 18:32:05 2026 +1000

    qa: update 1418.out for pmiWriteNow perl binding
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit f2905b5a8bbddb5a51e7e583cab912a22078e785
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 18:01:35 2026 +1000

    perl api: add pmiWriteNow() binding to LogImport.xs
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 4454ba5d15b52ee09be79a7fc8abb11e4fc1e93c
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 17:28:06 2026 +1000

    libpcp_import, python api, pmrep: add pmiWriteNow(); fix epoch timestamp writes
    
    pmiWrite(sec=0) was repurposed as a "use current time" sentinel, but this
    breaks any archive with Unix epoch timestamps (e.g. QA synthetic archives
    starting at 00:00:00 1970).  Separate the two concerns cleanly:
    
      - pmiWrite() now always uses the supplied sec/nsec timestamp verbatim;
        sec=0 writes a record at Unix epoch, not wall-clock time.
      - pmiWriteNow() is a new function that writes a record timestamped with
        the current wall-clock time.
    
    Update all callers:
      - Python pmiWrite(0) (integer zero, no nsec) now calls pmiWriteNow()
        so existing "use current time" idiom still works from Python.
      - pmrep: pass microsecond*1000 as nsec (was usec) and sec=0 now
        correctly writes the archive sample at epoch instead of current time.
      - qa/src/check_import.c, check_import.perl: pmiWrite(0,0) -> pmiWriteNow()
      - Perl LogImport: export pmiWriteNow in @EXPORT list.
      - pylint: replace manual if/clamp with max() builtin.
    
    Also update qa/1623.out_v{2,3}: collectl2pcp now writes more metrics per
    record (from earlier subsystem handler additions), changing archive sizes.
    
    man/man3/pmiwrite.3, debian/libpcp4-dev.install: document pmiWriteNow.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 6cbca29aaa90abffa2651397d07e5af519f4db3c
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 15:56:18 2026 +1000

    collectl2pcp, qa: fix pmiWrite() callers for nsec API and sec=0 semantics
    
    pmiWrite() changed its second parameter from microseconds (internally
    multiplied by 1000) to nanoseconds (used directly), and the sentinel for
    "use current time" changed from sec<0 to sec==0.  Update all affected
    callers:
    
      collectl2pcp/timestamp.c: mseconds*1000 -> mseconds*1000000 (usec->nsec)
      qa/src/batch_import.perl: pmiBatchWrite(0,...) -> pmiBatchWrite(1,...)
        to avoid sec=0 triggering wall-clock time instead of epoch
      qa/src/test_pmi.python: pmiWrite(0) -> pmiWrite(1) for same reason;
        pmiWrite(sec, usec=123456) -> pmiWrite(sec, nsec=123456000)
      qa/src/check_import.python: useconds (1e6 scale) -> nseconds (1e9 scale)
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 2a6e248b9b2fc71b545a721c5c78cc670c0251a2
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 15:46:06 2026 +1000

    python api: update pmi.py for pmiWrite nanosecond API
    
    Rename usec -> nsec parameter in pmiWrite() and switch from pmiWrite2()
    to pmiWrite() with nanosecond precision, matching the current
    libpcp_import API.  Also clamp nsec to zero after all conversion paths
    to guard against a negative fractional part from modf() on pre-epoch
    timestamps.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 500405300bd5fd5458fcc66d2cad45d0392aaa63
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 15:05:35 2026 +1000

    pmdapmimport: fix PMIMPORT_MAX accounting and atol() pid parsing
    
    Stale sidecar files left by crashed daemons were consuming slots in the
    PMIMPORT_MAX tool limit before the pid liveness check could filter them
    out, silently dropping live tools when many stale files accumulated.
    Move the limit guard to after both paths (mtime-unchanged recheck and
    fresh parse) have determined whether the tool is active.
    
    Also replace atol() with strtol() for pid= parsing: atol() returns 0
    silently on malformed input, which would bypass the __pmProcessExists
    liveness check for any corrupted sidecar file.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 5a723d954112886317900c337cbcb8556d4c1b76
Author: Nathan Scott <nathans@redhat.com>
Date:   Sat Jun 20 17:42:03 2026 +1000

    pmdapmimport, pcp-summary: add pmimport.* metrics for import tools
    
    Introduce a generic pmimport.{archive,version,args} metric set with an
    instance domain with each instance an active import tool identified by
    name.
    
    pmdapmimport scans PCP_IMPORT_DIR on each fetch; each file is a status
    file written by an import tool containing key=value lines:
      pid=      process ID (long-running daemons only, via PMI_PROCESS flag)
      version=  tool version string
      args=     tool-specific arguments
      archive=  current archive base path
    
    Mapping to:
      pmimport.archive  current archive base path
      pmimport.version  tool version string
      pmimport.args     tool-specific argument string
    
    Add PMI_PROCESS flag (0x4) to pmiStart(): long-running import daemons
    pass this flag to write their pid= to the status file and have it
    removed on clean exit via pmiEnd().  One-shot tools (e.g. sadc invoked
    by sa1) omit the flag so the status file persists between invocations.
    
    pmdapmimport reads pid= and uses __pmProcessExists() to skip stale
    status files left by daemons that exited uncleanly.
    
    pmi_context gains a flags:16 bitfield (alongside the existing state:16)
    to carry PMI_PROCESS across the lifetime of a context.
    
    pcp-summary(1) displays sysstat/sadc with custom formatting; any other
    active import tool is shown generically with aligned tool/modules/archive
    lines, so new importers appear automatically without script changes.
    
    The PMDA is included in local.conf so it is available in both live pmcd
    mode and local context mode (pminfo -L), enabling pcp-summary and other
    tools to report import tool status without requiring pmcd.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit da0aa47c34ca2c2052295050d6123bd3f5ef8102
Author: Nathan Scott <nathans@redhat.com>
Date:   Sat Jun 20 17:45:11 2026 +1000

    linux, collectl2pcp: add missing subsystem handlers and cpu frequency metric
    
    linux PMDA: add hinv.cpu.frequency_scaling.current (item 10 in
    CLUSTER_SYSFS_DEVICES) reading /sys/devices/system/cpu/*/cpufreq/
    scaling_cur_freq per CPU.  The existing freq.scale field already holds
    this value from refresh_sysfs_frequency_scaling_cur_freq(); we simply
    expose it as a new instant metric alongside the existing .min/.max.
    
    collectl2pcp: add handlers for subsystems that had no coverage:
      sock   - network.sockstat.* from /proc/net/sockstat
      fs-ds  - vfs.dentry.count from /proc/sys/fs/dentry-state
      fs-is  - vfs.inodes.count from /proc/sys/fs/inode-nr
      fs-fnr - vfs.files.count from /proc/sys/fs/file-nr
      buddy  - mem.buddyinfo.total from /proc/buddyinfo (per zone)
      nfsc-  - nfs.client.calls from /proc/net/rpc/nfs
      nfss-  - nfs.server.calls from /proc/net/rpc/nfsd
      numai  - mem.numa.util.* from /sys/devices/system/node/nodeN/meminfo
    
    Test data: qa/collectl/subsys_test.raw.gz (1.9KB, 3 samples) collected
    using collectl -s sibm to exercise all new handlers.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 5fecb9b40984ad4ea54dd622c437a7145b179d1c
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 13:43:21 2026 +1000

    build: resolve macos issue relating to unwanted systemd files

commit 1b213c50444c0f25b57ff9cb813892241180d204
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 13:18:38 2026 +1000

    libpcp: fix __pmLogFreeLabel double-free and leak in __pmLogOpenAppend
    
    After assigning the meta label to lcp->label via struct copy, label's
    hostname/timezone/zoneinfo pointer fields alias lcp->label's.  A
    subsequent __pmLogChkLabel call that returns before __pmLogLoadLabel
    overwrites those fields (e.g. on a short read) would leave label still
    holding the aliased pointers; the __pmLogFreeLabel on the error path
    would then free the strings that lcp->label still references, causing a
    double-free when logFreeMeta() runs.  Zero label immediately after the
    assignment so lcp->label exclusively owns the strings.
    
    Also add the missing __pmLogFreeLabel for the data-volume label on the
    success path; the hostname/timezone/zoneinfo allocated by the final
    __pmLogChkLabel call were leaked on every successful open-for-append.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit ab69c21c9e08002e0e7fc86088ad8b7809d1ad0e
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 26 10:03:51 2026 +1000

    python api: update overlooked python PMI interface
    
    Make use of the clean v2 ABI interfaces now instead of the
    old and moldy v1 patchwork quilt.

commit 3d1a65db69e686ce0687f299ef18ef520f665309
Merge: 705b3bcd 93efeeea
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 25 15:26:26 2026 +1000

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

commit 705b3bcd2dd64e577a0dcb9b93753a31db71c367
Merge: 32564943 bcc22027
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 25 15:26:03 2026 +1000

    Merge branch 'dso-pmdas-help'

commit 32564943d06fb61fe3eb0a594fa58266c8942c2b
Merge: c2e523f2 4496d69a
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 25 15:24:54 2026 +1000

    Merge branch 'preserve-import1-abi'

commit c2e523f272738b21092b0d7646ab13da00675096
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 25 15:21:26 2026 +1000

    docs: refine "labels" reference in log-append header comment

commit bcc22027dd74849f3996d1f403e808fbd84f6136
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 24 20:39:02 2026 +1000

    pcp-libs: include DSO PMDA .so and help files for local context
    
    Clients using PM_CONTEXT_LOCAL need both the PMDA shared libraries and
    their compiled help files (.dir, .pag) to work standalone without the
    main pcp package.
    
    For RPM: derive the DSO PMDA directory list from local.conf (same source
    used for the .so files) and extend basic_manifest to also pull the
    compiled help files into pcp-libs-files.
    
    For Debian: add glob patterns to libpcp4.install to capture all PMDA
    .so and compiled help files under usr/lib/pcp/pmdas/.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 4496d69af8e88f376860e9f06c8772e5b6b9e04f
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 25 12:01:15 2026 +1000

    libpcp_import: introduce ABI v2 while continuing to ship ABI v1
    
    Following up on Ken's feedback on recent changes, we're going to
    handle libpcp_import the same way we did the libpcp.so.4 switch.
    
    This allows us to completely retire the non-Y2038 safe interface
    and also means we don't need to reintroduce the HighRes pmResult
    interface.
    
    All of the new import interfaces in this release are now forming
    the v2 ABI while a snapshot of the last releases interfaces will
    remain in the libpcp_import1 shared library.

commit 93efeeea356ec684165774bf8b908023bb630393
Merge: ab250a7b bcd79e94
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 21:14:40 2026 +1000

    Merge pull request #2634 from kmcdonell/wip
    
    QA fixups and convert Nvidia PMDA to extraunits

commit bcd79e9451c2187d32639655c4936f85083bf5ea
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 17:57:32 2026 +1000

    src/pmdas/nvidia/rewrite.conf: fix power units
    
    Thanks @coderabbitai.

commit ab250a7b62651a389b6da087582fbd49d4475316
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 24 17:54:38 2026 +1000

    pcp-summary: fix pmie primary instance detection
    
    The awk code used BEGIN { primary=0 } which left primary as a numeric
    zero when no id=0 ("primary") pmie instance existed.  Any pmie instance
    whose third join field happened to be the string "0" (e.g. from an archive
    where the irix namespace maps pmie metrics to zero-valued PMIDs) would
    falsely match $3 == primary, producing incorrect "primary engine: 0" output
    or hiding non-primary instances.
    
    Fix by initialising primary to "" and guarding both $3 == primary
    comparisons with primary != "" so they only fire when an id=0 instance
    has actually been seen.  Update qa/507.out to reflect the corrected
    output for the pcpcmd archive.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit fbf39978f3ea34aced3d1a4f3f8866ad19b9a882
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 17:53:21 2026 +1000

    qa/group: add local (group) for test 1675

commit 97ee94370a723087c49af3a5a3448f32692fd051
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 17:52:11 2026 +1000

    qa/1675: rework archive iterartion

commit ad58a579f90f81f6332a9f87a98b92388243de98
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 17:38:25 2026 +1000

    qa/1559 and qa/1670: rework archive iteration

commit aabd29c3eec108fbd6097abc87d913c0ac1c3148
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 24 16:16:28 2026 +1000

    libpcp_import: prevent use-after-free on an error path (covscan)

commit 47d1b9b16c0ab8cfd60f07dc06fd39796de3ad09
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 24 15:16:56 2026 +1000

    pmdards, qa: rds modules use psutil module which is not always available

commit 1edbb6f655240f6da4264bbe6f84a7950874e58f
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 24 15:16:26 2026 +1000

    build: add top-level gitignore for git worktrees

commit c90d32654e1e3b05792a0dd4b5d31b4944d214f6
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 24 11:43:42 2026 +1000

    libpcp_import: fix two segfaults in pmiStart and check_indom
    
    pmiStart: realloc() does not zero the new slot, so fields added to
    pmi_context by recent commits (max_volume_bytes, on_volume_rotate,
    tool_name) were uninitialised.  A non-zero garbage max_volume_bytes
    caused _pmi_put_result() to call on_volume_rotate through a garbage
    function pointer, segfaulting callers such as collectl2pcp (qa/536).
    
    check_indom: addindom() stores direct pointers from the pmi_context
    indom name array into the hash.  A subsequent pmiAddInstance() realloc()
    can move that array, leaving dangling pointers in the hash.  On the next
    write, __pmLogGetInDom() returns these stale namelist pointers, and the
    strcmp() in pmaDeltaInDom() crashes.  Fix by passing __pmDupLogInDom()
    copies (with PMLID_INSTLIST|PMLID_NAMELIST|PMLID_NAMES) to the hash so
    it owns stable independent copies of the name strings.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 79dfe4be7ef2f4057dbb27050902c28239c547e0
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 24 11:25:34 2026 +1000

    pmdadb2: address coderabbit review of Db2 v12 fixes
    
    Rename db2.instance.platform to db2.instance.build_level to match what
    is actually reported: BLD_LEVEL from SYSIBMADM.ENV_INST_INFO is a build
    identifier that encodes architecture, not a platform descriptor.  Update
    pmlogconf.summary to reference the new metric name.
    
    Replace 'SELECT COUNT(*) ... FETCH FIRST 1 ROW ONLY' with
    'SELECT 1 ... FETCH FIRST 1 ROW ONLY WITH UR' in db2_register_user_tables.
    COUNT(*) processes all matching rows before returning even with FETCH FIRST,
    inflating ROWS_READ and TABLE_SCANS counters on the tables the PMDA is
    trying to report.  SELECT 1 WITH UR accesses a single row with uncommitted
    read, stops immediately, and avoids lock contention.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 951ebc2bf43ba1577333d9d3c0413d65454fbd1b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 07:20:13 2026 +1000

    assorted: pander to (different!) awk on macOS
    
    Throughout the known (GNU) awk universe, this works:
        awk 'END { f = "/foo"; print >"/tmp" f }' </dev/null
    but on macOS this produces a "awk: syntax error"
    
    However, this works for all versions of awk:
        awk 'END { f = "/foo"; print >("/tmp" f) }' </dev/null
    
        modified:   qa/1633
        modified:   qa/1674
        modified:   qa/671
        modified:   qa/681
        modified:   qa/new
        modified:   qa/new-dup
        modified:   qa/new-grind
        modified:   qa/src/mv-me
        modified:   src/ctl-tools/ctl-tools.sh

commit f99906afd739f5d3677e7d4033cfc3145d19d6be
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 07:00:56 2026 +1000

    src/pmdas/nvidia/rewrite.conf: (new) add, missed in previous commit

commit 2b5c9d14c019807d04ebad169183fdd6288ff093
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 24 06:50:16 2026 +1000

    nvidia PMDA: metadata changes to use extra units
    
    For power and temperature.
    
    + pmlogrewrite rules and qa for this
    + updated recipe for recreating qa/archives/nvidiagpu archive

commit d4941899e872b71c4ba4f1f3ea4e0aa814ef073a
Author: Jan Kurik <jkurik@redhat.com>
Date:   Tue Jun 23 21:59:14 2026 +0200

    Fix db2.table metrics by registering tables on the PMDA connection
    
    MON_GET_TABLE only lists tables after the monitoring connection has
    accessed them, so db2.table.* was always empty despite application
    activity. Probe user tables from SYSCAT on connect, reconnect, and
    before table refreshes so per-table counters are populated. Also remove
    the stub db2.table.deadlocks metric, which is not available in
    MON_GET_TABLE and was misleading when hardcoded to zero.

commit a0e1e35ab40c5458a9e70b007f15ac19816f0282
Author: Jan Kurik <jkurik@redhat.com>
Date:   Tue Jun 16 21:03:11 2026 +0200

    Reworked number of passed parameters
    
    To make pylint happy, the number of parameters passed to
    db2_refresh_instanced() has been reworked.

commit f8f891404aae8343ec6b6e36bfa5fe2c25857d86
Author: Jan Kurik <jkurik@redhat.com>
Date:   Tue Jun 16 17:18:10 2026 +0200

    pmdadb2: fix Db2 v12 MON_* column and view compatibility
    
    Update SQL for Db2 12 (TBSP_NAME, ACT_COMPLETED_TOTAL,
    SYSIBMADM.ENV_INST_INFO, transaction log byte fields), report zero for
    unavailable per-table deadlocks, and only drop connections on
    communication failures.

commit 1c256b85970681fc1df422035aabe0a2e8da7d3f
Merge: 451e5366 9bceddfb
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 23 14:48:59 2026 +1000

    Merge branch 'main' into pmi-append-mode

commit 451e5366e4f57c373da73e08d9ab0776f7967a39
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 23 08:52:30 2026 +1000

    libpcp_import: build, docs, qa and comments updates on code review

commit 9bceddfbadff601341cbb74995542feead19366b
Merge: e9bbdb8b 1ac9652b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 23 10:57:37 2026 +1000

    Merge pull request #2629 from kmcdonell/wip
    
    QA updates, retire some PMDAs, small extra units related changes

commit a6c5e2ef897d4be5c0dc2a86996602790cd717e7
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 22 11:58:49 2026 +1000

    pcp.pmi, LogImport: add wrappers for pmiSetZoneinfo and pmiSetImportProgram
    
    Add Python ctypes declarations and method implementations for the two
    new single-context pmiSet* APIs added on this branch:
      pmiSetZoneinfo(zoneinfo)        - set Olson timezone from zoneinfo string
      pmiSetImportProgram(tool, ...)  - register import program with pmdapmimport
    
    Add Perl XS declarations for the same two functions.  pmiSetVolumeSize
    is omitted from Perl as its callback argument has no natural XS mapping.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit e379b2ec1ff17127e7ad212aad08960e6d40038e
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 22 10:57:36 2026 +1000

    libpcp_import: add pmiSetImportProgram() for import tool registration
    
    pmiSetImportProgram(tool, version, args, archive) writes tool identity
    to PCP_IMPORT_DIR/{tool} so pmdapmimport can serve pmimport.* metrics.
    
    PCP_IMPORT_DIR is a new pcp.conf variable (configure --with-importdir,
    default /run/pmimport) that is created root:root 0755 by packaging.
    The file is opened with O_NOFOLLOW|O_CLOEXEC to prevent symlink
    substitution and fd leakage; O_TRUNC handles restart after unclean exit.
    
    pmiEnd() removes the file on clean archive close so pmimport.* metrics
    accurately reflect which tools are currently recording.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 1f5019adf948adf34bd65bc8c90906e1d7005b32
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 19 18:41:57 2026 +1000

    libpcp_import: eliminate .meta bloat in append-mode archives
    
    Three sources of repeated metadata writes in PMI_APPEND mode:
    
    Indoms: check_indom() had no dedup check so every append session
    re-wrote all indom records regardless of whether membership had
    changed.  For timer-driven collectors like sadc this caused O(N×S)
    .meta growth where N is the number of processes and S is the number
    of sessions per day.
    
    Fix: compare the registered indom against the most recent entry in
    hashindom (populated by __pmLogLoadMeta on append open).  For v3
    archives use pmaDeltaInDom() — the same helper pmlogger uses — to
    write a compact TYPE_INDOM_DELTA record when membership changes, and
    update the hash with the full indom afterwards so the next comparison
    starts from the correct state.  For v2 archives use pmaSameInDom()
    and fall back to full indom writes.  Link -lpcp_archive for access
    to pmaDeltaInDom() and pmaSameInDom().
    
    Help text: _pmi_put_text() reset meta_done=0 each session via
    pmiStart inherit, causing all help text to be re-written on every
    append.  Fix: check __pmLogLookupText() before writing; skip if
    content is unchanged.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 930460a76fff623cd47574434835c69f561f85d9
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 18 10:51:15 2026 +1000

    libpcp_import: add pmiSetZoneinfo() for v3 archive Olson timezone
    
    PCP v3 archives have a 'zoneinfo' label field for the full Olson
    database timezone identifier (e.g. "Australia/Brisbane"), which gives
    tools DST-correct replay without ambiguity.  pmiSetTimezone() only
    sets the POSIX abbreviated form ("AEST-10") and was incorrectly
    clearing zoneinfo when applying it to the label.
    
    Add pmiSetZoneinfo(const char *value) which sets the zoneinfo field
    independently, modelled on pmiSetTimezone().  Passing NULL auto-detects
    the local Olson name via __pmZoneinfo() (libpcp tz.c), which handles
    both the /etc/localtime symlink case and the recursive file-content
    matching fallback.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit d8a186ab6be04b793db158c6c2643355b486996c
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 17 14:08:06 2026 +1000

    libpcp_import: add pmiSetVolumeSize() for automatic data volume rotation
    
    Add pmiSetVolumeSize(size_t max_bytes, void (*on_rotate)(const char *))
    to libpcp_import.  After each successful pmiHighResWrite() or pmiWrite()
    call, if the current data volume file size meets or exceeds max_bytes the
    library closes the current volume, opens the next numbered volume (writing
    a new label), and invokes the caller's callback with the path of the
    just-closed volume so compression or other post-processing can be arranged.
    Passing max_bytes=0 disables rotation (the default).
    
    Guard: pmiSetVolumeSize() rejects a threshold at or below the on-disk
    label size for the configured archive version.  Accepting a sub-label
    threshold would cause a rotation cascade since every new volume's label
    immediately exceeds the threshold.  The check uses the public pmapi.h
    field-width constants to avoid a dependency on the file-static
    __pmLabel_v2/v3 types.
    
    Also: replace the magic number 100000 in _pmi_put_result() with the
    named constant PMI_FLUSH_INTERVAL throughout archive.c.
    
    Also: pair consecutive int fields in pmi_context (private.h) to eliminate
    four bytes of alignment padding before each pointer on 64-bit platforms.
    The struct is private to libpcp_import so there is no ABI constraint.
    
    QA: check_volsize.c exercises rotation, callback, size-bound and label-size
        guard; wired into qa/1693 (the existing PMI_APPEND test) with a
        pmlogcheck step to verify multi-volume archive integrity.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 63b681aeeb4bed12861309b55db5aa9f96d943bc
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 17:10:59 2026 +1000

    pcp.pmi: fix pmiWrite when sec=0 and usec is omitted
    
    The condition 'if sec and not usec' fails when sec==0 because 0 is
    falsy, leaving usec as None and causing pmiWrite2(0, None) to raise
    TypeError against its c_int argtypes.  Change to 'if usec is None'
    so the datetime/float dispatch and the usec=0 fallback always run
    when usec was not supplied by the caller.
    
    Add a pmiWrite(0) call at the start of qa/src/test_pmi.python to
    cover this path, and update qa/708.out accordingly.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 90d2c1846eae89616214e8b16eec9a795e5bd51e
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 16:31:19 2026 +1000

    libpcp_import: address coderabbit review findings
    
    pmiPutAtomValueHandle: validate atom is non-NULL before passing to
    _pmi_stuff_atomvalue, returning PM_ERR_ARG to avoid a segfault on
    PM_TYPE_STRING metrics where atom->cp would be dereferenced.
    
    archive.c _pmi_do_desc: when a descriptor for this PMID already exists
    in the archive, verify it is compatible before skipping the write.
    A package upgrade may have corrected an incorrect type, semantics,
    instance domain or units for a metric, in which case the old archive
    cannot be extended with new data.  Return PM_ERR_LOGCHANGETYPE,
    PM_ERR_LOGCHANGESEM, PM_ERR_LOGCHANGEINDOM or PM_ERR_LOGCHANGEUNITS
    as appropriate so the caller has a precise diagnosis.
    
    qa/group: add local group to qa/1670 so the standard local sweep
    picks up the new append-mode coverage.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit af52c92d0181a3fa86b3a5db7f060bc69f2be19f
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 13:01:20 2026 +1000

    qa: makefile cleanups, removing unneeded macros

commit e0014ef6f728945828d91b8efea62f2faeedfe92
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 11:04:27 2026 +1000

    pcp.pmi: add type annotations to pmiLogImport API
    
    Annotate all method signatures in the pmiLogImport class with PEP 484
    type hints, compatible with the project's Python 3.6 minimum.
    
    Return types reflect actual Python-level values (int status, pmID,
    pmInDom, pmUnits, None).  String parameters are annotated as str since
    bytes encoding is an internal detail.  pmiPutValue/pmiGetHandle inst
    parameters are Optional[str] to reflect the None-for-singular-metric
    convention.  pmiWrite sec is Union[int, float, datetime] matching its
    three-way dispatch.  Imports Optional and Union from typing.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 1de184d6b6d22ffae84199402798ca9fa209364a
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 10:56:00 2026 +1000

    man: add Python SYNOPSIS to all pmi* man pages
    
    Add a Python SYNOPSIS section to each libpcp_import man page that has
    a Python binding in src/python/pcp/pmi.py.  The Python API wraps the C
    library via the pmi.pmiLogImport class; methods are called on an
    instance.  Multi-line call signatures use the same continuation-indent
    style as the existing Perl SYNOPSIS sections.
    
    pmiputresult.3 gains a Python-only synopsis (Perl has no binding for
    pmiPutResult/pmiPutHighResResult).  pmisetversion.3 gains both Perl and
    Python synopses, fixing a pre-existing omission.  pmiusecontext.3 and
    pmierrstr.3 are left without a Python synopsis as pmi.pmiLogImport
    handles context switching internally and surfaces errors as exceptions.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit 91f772425c09f3d2aedffcf8f4dbe0ba88267fd5
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 4 10:43:57 2026 +1000

    libpcp_import: add pmiPutAtomValueHandle to public API
    
    Add pmiPutAtomValueHandle(int handle, pmAtomValue *atom) as a binary
    counterpart to pmiPutValueHandle, passing values directly via the
    pmAtomValue union rather than as strings requiring parsing.
    
    Refactor stuff.c to extract _pmi_alloc_vp and _pmi_alloc_valblock
    static helpers, eliminating the duplicated result/vset/vp setup and
    pmValueBlock allocation that both _pmi_stuff_value and the new
    _pmi_stuff_atomvalue share.
    
    Update pmiputvaluehandle.3 and exercise the new function in
    qa/src/check_import.c covering the INSITU path (U32), DPTR path
    (64-bit), bad-handle and duplicate-value error cases.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
    Signed-off-by: Nathan Scott <nathans@redhat.com>

commit ec9d164178b1cc4a388bdc1dcd4d5968885c1b2a
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 2 12:26:49 2026 +1000

    libpcp_import, libpcp: improve archive append mode and public API
    
    logutil.c: rework __pmLogOpenAppend() to use __pmLogFindOpen() for
    volume discovery.  Previously we iterated using lcp->numti (temporal
    index count) as a starting hint; this bypassed the canonical readdir +
    __pmLogAddVolume path.  Now:
    
     - __pmLogFindOpen() performs the directory scan, correctly setting
       lcp->name, lcp->minvol and lcp->maxvol via __pmLogAddVolume.
     - .meta and .index handles from __pmLogFindOpen (read mode) are used
       to validate the archive label and load the temporal index for
       lcp->endtime, then closed and reopened in r+ mode for writing.
     - The highest data volume (lcp->maxvol) is opened in r+ mode so its
       label is validated with __pmLogChkLabel before appending, matching
       the consistency checking done by __pmLogChangeVol in the read path.
     - acp->ac_flags |= PM_CTXFLAG_LAST_VOLUME signals that we are at the
       most recent volume, following the __pmLogOpen convention.
    
    import.h: expose pmiWrite2, pmiHighResWrite and pmiPutHighResResult as
    the preferred Y2038-safe interfaces.  pmiWrite(int,int) is marked
    deprecated.
    
    pmiwrite.3: document pmiWrite, pmiWrite2 and pmiHighResWrite on one
    page; note pmiWrite as deprecated and pmiHighResWrite as preferred.
    
    pmiputresult.3: document pmiPutResult and pmiPutHighResResult together;
    note pmiPutHighResResult as the preferred nanosecond-resolution variant.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit b8a7fbb2b71ac00d91585bfff6672602bfe87e40
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 1 16:49:44 2026 +1000

    libpcp_import: expose pmiWrite2 and pmiHighResWrite in public API
    
    pmiWrite2(int64_t sec, int usec) and pmiHighResWrite(int64_t sec, int nsec)
    were already implemented and exported from the shared library but were
    missing from the public import.h header, making them unusable by callers
    without forward-declaring them manually.
    
    Add declarations for both and deprecate pmiWrite(int, int) with a comment:
    its 32-bit seconds argument is not Y2038-safe and callers should migrate to
    pmiHighResWrite() for nanosecond-resolution timestamps or pmiWrite2() for
    microsecond resolution.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 2fe039df7d848390a6491a4eb1e5c49ca6ea5e64
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 9 11:20:46 2026 +1000

    libpcp, libpcp_import: implement an archive append mode of operation
    
    Rename the second argument of pmiStart() from the implicit boolean
    'inherit' to an explicit 'flags' field.  Named constants are now
    provided in import.h:
    
      PMI_INHERIT (0x1) - existing behaviour: inherit metric definitions
                          from the current context into the new one
      PMI_APPEND  (0x2) - open an existing archive for appending instead
                          of creating a new one
    
    pmiStart() with PMI_APPEND opens the named archive if it already
    exists and positions all file handles at end-of-file, loading the
    existing metadata so that subsequent pmiWrite() calls append new
    records after the last existing record.  If the archive does not
    yet exist the flag is silently ignored and a new archive is created,
    making PMI_APPEND safe for unconditional use in timer-driven
    collectors (e.g. sadc) on first invocation.
    
    Add QA test 1693 to exercise the append mode.
    
    Signed-off-by: Nathan Scott <nathans@redhat.com>
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 1ac9652bc305d98dd733c13d7eafead8422dd59d
Merge: a2c3f51c 28905524
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 23 06:59:05 2026 +1000

    Merge branch 'main' into wip

commit 28905524ea695b3a1e6dbcdd11f3a075475b9f10
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Tue Jun 23 06:34:06 2026 +1000

    rpm packaging: obsolete (remove) mic and roomtemp PMDA packages

commit a2c3f51cb152e50a91f97d198d65f0250147f68b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 21:38:47 2026 +1000

    qa/archives/mk.common: tighten up shell variable quoting

commit 668623e3371ec5022cf3436e9b3897820a92da39
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 21:27:02 2026 +1000

    qa/archives/mk.amdgpu: small fixups
    
    As spotted by @coderabbitai.

commit 47ae945b5458de0e4059ef69f1c8de41eb01fe0b
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 21:21:49 2026 +1000

    Update qa/1559
    
    Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

commit e9bbdb8b938f3f2644fad5a21b2cee02faf790a4
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 22 17:47:26 2026 +1000

    qa: fix regression in qa/1543 by filtering changed label

commit 0bd8521c87609701e44b371db4173a374c0d307f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 17:21:20 2026 +1000

    qa/archives/GNUmakefile: package the amd-smi output files
    
    Needed by qa/1674.

commit c5ae751ede574f69dc86e1a3d7892cbd73583a59
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 15:57:12 2026 +1000

    qa/archives/GNUmakefile: make sure renamed archives are packaged

commit c12caed0a4f10701b5262633f109df3cbe362704
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 15:51:09 2026 +1000

    qa/archives/nvidiagpu.*: renamed to qa/archives/nvidiagpu-0.*
    
    In preparation for extra units changes for nvidia PMDA.

commit 9a53571da90f56d89dfaa77e1c5b23650c7d012e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 15:43:37 2026 +1000

    qa/archives: mk.* rework
    
    - move to a archive-<version> style of naming so we can generate
      multiple archives from the mk.foo scripts to deal with the
      evolution of the underlying PMDAs (triggered by amdgpu and the
      extra units and metadata changes there)
    - convert mk.nvidiagpu to use mk.common (in preparation for
      extra units changes for the nvidia PMDA)

commit 01d5079fa81b35300fb292a23f4913afb47e549e
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 09:00:48 2026 +1000

    qa: track name change for amdgpu qa archive(s)
    
    tests: 1559, 1669, 1670

commit 3b37af8a06ea213b9fa8f2fb5f4e3697ff4418c0
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 09:00:09 2026 +1000

    src/pmlogrewrite/gram.y: fix small memory leak from extraunits clause
    
    Found by qa/1670.

commit df71b48f5185d5ae6e8c42c10651fbfd7e007c59
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:58:18 2026 +1000

    src/pmdas/amdgpu/rewrite.conf: rework for extraunits
    
    Because this rewrite file includes the PMNS <--> PMID fixups,
    clauses using metric names are potentially ambiguous and were
    confusing pmlogrewrite.  Changing to PMIDs for the new extraunits
    changes fixes the problem.

commit b1494f97eb1ebb5c9f237dd2e8b98a487621e1f7
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:56:19 2026 +1000

    qa/common: prefer diffuse for graphical diffs, if available
    
    For me (on bozo), meld is really slow (to exit), so switching to diffuse.

commit 7dac1fc4662fff14f5aa6d17ce04057ccea4b9b2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:34:37 2026 +1000

    qa/GNUmakefile & qa/GNUmakefile.install: the qa mic subdir has been removed

commit 7d44e0c3b22a91033822d47a8f76e0d17e9ef8ed
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 08:02:56 2026 +1000

    Retire the roomtemp PMDA
    
    I built this PMDA more than 30 years ago as a proof of concept one
    night in a hotel room while on a PCP speaking tour for SGI ... I
    no longer have the Dallas one-wire sensor and a PMDA that needs one
    temperature sensor plugged into a serial port is probably not that
    widely used.

commit 8eba4293ea03392c0db5025efdedfaae6069616a
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 07:46:11 2026 +1000

    Retire the mic PMDA
    
    The hardware this PMDA depends upon (the Intel® Xeon Phi™ Coprocessor)
    stopped shipping almost 9 years ago, so this PMDA is very unlikely to
    be of further use.

commit 3b8ca296fba6d27f1d9877622cdf56a22207a022
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Mon Jun 22 07:27:41 2026 +1000

    qa/1187: track name change for original amdgpu QA archive

commit dde1336ec3954b10d64edf1566026eabe7767911
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sun Jun 21 07:49:12 2026 +1000

    debian/control.pcp: update pcp-conf Breaks: and Replaces:
    
    /etc/pcp/indom.conf moved from pcp to pcp-conf.

commit 13767bad0d83923f325957a0d2e994f18d07fbc6
Merge: e7355308 5a35adf6
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 12:23:36 2026 +1000

    Merge pull request #2627 from kmcdonell/wip
    
    Add amdgpu PMDA QA test and fix clock metrics unit conversion

commit 5a35adf60d1b786b5b8683652b260ac9295fa3b1
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 10:38:11 2026 +1000

    pmdas/amdgpu: small rework
    
    - better error handling for store method
    - don't include fake.c in build

commit 525b638cc417b60bc8fa71b9e1a2ec50545739f9
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 10:16:37 2026 +1000

    qa/1674: check for failure messages from awk
    
    Thanks coderabbitai.

commit e8d92720beb844834e49041b415a13fbe8f5ecf3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 09:57:20 2026 +1000

    pmnsmerge.static: rework based on feeedback from coderabbitai
    
    Review in the context of PR 2627.
    
    Make build and use of pmnsmerge.static consistent.

commit f83f0d4802be32714d7a9267ef7283d7682866ed
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 08:50:50 2026 +1000

    src/pmdas/amdgpu: improvements
    
    - add amdgpu.control.debug to turn debugging on/off while running
    - lots of additional diagnostics under -Dappl1 guards
    - fix max clock values - they appear to be KHz not Mhz
    - change to extra units for power and temperature

commit d0c9996c6b333e6bfddc8b50891e79e5aa15090e
Merge: 0ee8019a b25dbfda
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 08:44:20 2026 +1000

    Merge branch 'main' into wip

commit b25dbfda794d77d2ba436c6482b67d6fcc3bf9dc
Merge: e7355308 26b62109
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Sat Jun 20 08:41:41 2026 +1000

    Merge branch 'amdgpu'

commit 0ee8019a5bc8dcffa62d19a2c8ca2e2182fc017a
Merge: 329ee605 e7355308
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 21:22:38 2026 +1000

    Merge branch 'main' into wip

commit e7355308175f80cbb99ec07936edbf1c4262ad27
Merge: 8cddb009 b440f2c3
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 21:20:30 2026 +1000

    Merge pull request #2610 from kmcdonell/amdgpu
    
    Updates for pmlogrewrite and amdgpu PMDA

commit 26b621095fbe23753f00e59015b0f218791fdbed
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 21:18:19 2026 +1000

    amdgpu PMDA: updated qa and test archive

commit 329ee605fc3f1f0e4b45f2f4974fe419ee8f6860
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Fri Jun 19 06:32:13 2026 +1000

    pmnsmerge: build pmnsmerge.static and use it to create local.pmns

commit 8cddb009b1db532a5ffcdbbf1c7007fb6920eea0
Merge: cf8cdf4b bf7adf23
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jun 18 21:13:33 2026 +1000

    Merge branch 'main' of ../pcp

commit bf7adf233581457b3d08515213d0622812e1995f
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jun 18 17:17:02 2026 +1000

    qa/1544: pmlogger may be a drive-by victim
    
    Dinking with pmproxy may change the metrics from the pmproxy PMDA
    which in turn may cause the primary pmlogger to exit, and if there is
    no systemd ambulance to apply CPR, and if check.callback is in play
    then this and some (large) number of following tests fail because the
    primary pmlogger is not running.

commit 8d2f05736b3e6b7cbb372efa3326adb03e00eb92
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Thu Jun 18 17:15:20 2026 +1000

    qa/024: cifs PMDA recently appeared, but it may not be there
    
    Filter away, Mr. Magoo.

commit cf8cdf4b71ebd6801b423807c6f70b8dcd8bce38
Author: Nathan Scott <nathans@redhat.com>
Date:   Thu Jun 18 12:03:09 2026 +1000

    build: rename root.local to local.root; fix Debian install paths
    
    Rename the generated local context PMNS file from root.local to
    local.root throughout (GNUmakefile, .gitignore, pcp-conf.install,
    QA test 1742, pcpintro.1).
    
    Also fix pcp-conf.install to use usr/lib/pcp/ rather than
    usr/libexec/pcp/ for the new entries - Debian sets libexecdir=/usr/lib
    so $(PCP_PMNSADM_DIR) resolves correctly in the makefiles but the
    static paths in the install manifest must match.
    
    Addresses review feedback from Kenj.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 58ebd890b437fd434643d4d195a825d4a1fdd26f
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 12:49:24 2026 +1000

    build: add QA test and docs for local context DSO PMDA mechanism
    
    QA test 1742 exercises PM_CONTEXT_LOCAL using PCP_PMCDCONF_PATH=local.conf
    and PMNS_DEFAULT=root.local: verifies hinv.ncpu is fetchable, mmv wildcard
    resolution works, and pmcd.* metrics are absent from the local namespace.
    
    Document PCP_PMCDCONF_PATH and PMNS_DEFAULT usage for local context in
    pcpintro(1), including the recommended pairing of local.conf + root.local.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 4d1f2d850f5b26872a0ea16b45b6b22325232b1c
Author: Nathan Scott <nathans@redhat.com>
Date:   Tue Jun 16 11:30:41 2026 +1000

    build: local context files minor formatting tweaks and fixes
    
    Related to #2615.

commit 2aa5606b5fdec1d2910e66542b09915c958b31d1
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 20:50:17 2026 +1000

    build: fix duplicate root_* PMNS file installs in pcp-conf PMDAs
    
    PMDAs contributing root_* files to pcp-conf were installing a real
    file copy to both $(PMDAADMDIR) and $(PCP_PMNSADM_DIR).  Make the
    $(PCP_PMNSADM_DIR) and $(PCP_PMNS_DIR) entries symlinks back to the
    canonical copy in $(PMDAADMDIR) instead.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit 93f9006292ce71291b93a81ebf1b1636b99f6cb7
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 18:35:58 2026 +1000

    build: generate root.local PMNS for local context DSO PMDAs
    
    During the build, generate a merged PMNS root.local containing the
    combined namespace for all DSO PMDAs listed in local.conf.  Uses
    pmcpp.static to resolve domain macros and awk to merge the separate
    root{} blocks from each PMDA's root_* file into a single namespace.
    
    Install root.local to PCP_PMNS_DIR as part of pcp-conf, alongside
    the existing per-PMDA root_* files.  Clients using PM_CONTEXT_LOCAL
    can select this namespace via PMNS_DEFAULT.
    
    Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

commit b776d19b5194512a72c83eba135148f35ad4b433
Author: Nathan Scott <nathans@redhat.com>
Date:   Mon Jun 15 11:06:10 2026 +1000

    build: move root_* namespace files to pcp-conf for local context
    
    Arrange for the root_* namespace files to be installed via the
    pcp-conf package, so that pmNewContext(PM_CONTEXT_LOCAL,...) in
    PMAPI clients can use DSO PMDAs for sampling using just pcp-conf
    and pcp-libs installed.  The final step is to add a "root.local"
    without cpp-directives (there is no pmcpp(1) binary is available
    in this minimal install situation).
    
    Related to #2615.

commit 41c71e8d09c9edccba5f7a75673a3a43305db16a
Author: Nathan Scott <nathans@redhat.com>
Date:   Fri Jun 12 17:38:31 2026 +1000

    build: introduce local.conf with dso PMDAs for local context
    
    Arrange for the build to produce /etc/pcp/local.conf for use
    with pmNewContext(PM_CONTEXT_LOCAL,...) so that PMAPI clients
    can use DSO PMDAs for sampling using just pcp-libs installed,
    and no pmcd installed/running if they wish.
    
    Related to #2615.

commit 2f88a1a20e7a3dcfa60af5be50894cb4d6e8acda
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 16:58:03 2026 +1000

    qa/1094: capture stderr and filter, and remake
    
    After pmlogger_daily diagnostic improvements.
    
    Fallout from macOS work on pmlogger_daily et al.

commit 92ee2b1b68d0ba0da6827bfd892b2000bdfe048e
Merge: 29e63c95 245f3fa0
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:59:18 2026 +1000

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

commit b440f2c3c15ffcc8df2795d6ec14ee2869155221
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:55:56 2026 +1000

    src/pmdas/amdgpu: move fake library routines to a separate source file
    
    Move fake routines to (new) fake.c and cleanup drm.c.

commit f52c123a2c60cfb0bd0e331bd3c411866430b27d
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:47:23 2026 +1000

    src/pmdas/amdgpu/drm.c: small tweaks in fake routines implementaion

commit 245f3fa0c58976db6e8e13d847d8f53569de8ebb
Author: Nathan Scott <nathans@redhat.com>
Date:   Wed Jun 17 14:46:39 2026 +1000

    build: update gitignore for debian/ generated sysusers files

commit ac8e96c8b1fa4d4abc68c448c9a75ca1eaec02fd
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:28:39 2026 +1000

    src/pmdas/amdgpu/drm.c: fix calloc() botch in fake library routines
    
    Found by valgrind.

commit 19993a221edfee2532007596d7131f9cc3186708
Merge: fa574d6d ad88f2db
Author: Paul Smith <tallpsmith@gmail.com>
Date:   Wed Jun 17 14:20:17 2026 +1000

    Merge pull request #2626 from tallpsmith/feature/brewfile-mac-deps
    
    build/mac: replace brew-packages.txt with a top-level Brewfile

commit 88bb5db665e6e41eb63475a4a77ab943b394dd83
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:10:05 2026 +1000

    src/pmdas/amdgpu/amdgpu.c: fix fatal problem with PMID changes
    
    Move GPU metrics from cluster 2 to cluster 3 exposed a quirk in
    the implementation ... none of the cluster 3 metrics were being
    refreshed, so no values were available.

commit b2208e689a3bc5377456bd15d139e3f83e5059a2
Author: Ken McDonell <kenj@kenj.id.au>
Date:   Wed Jun 17 14:05:37 2026 +1000

    src/pmdas/amdgpu/drm.c: hackery to support development without hardware
    
    Fake minimal implementation of the drm*() and amd*() library routines
    that the PMDA needs ... allows testing if you don't have AMD GPU
    hardware.
    
    Obviously this is disabled by default 8^)
Created: 2026-05-23 Last update: 2026-06-26 09:30
Multiarch hinter reports 2 issue(s) low
There are issues with the multiarch metadata for this package.
  • pcp-doc could be marked Multi-Arch: foreign
  • pcp-export-zabbix-agent could be converted to Architecture: all and marked Multi-Arch: foreign
Created: 2016-09-14 Last update: 2026-06-26 22:00
4 low-priority security issues in bookworm low

There are 4 open security issues in bookworm.

4 issues left for the package maintainer to handle:
  • 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.

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

Created: 2024-02-29 Last update: 2026-05-29 02:03
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-05-26 12:02
testing migrations
  • This package will soon be part of the perl-5.42 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.
  • 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.
news
[rss feed]
  • [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)
  • [2025-03-15] Accepted pcp 6.3.5-1 (source) into unstable (Nathan Scott)
  • [2025-03-13] Accepted pcp 6.3.4-1 (source) into unstable (Nathan Scott)
  • [2025-01-28] Accepted pcp 6.3.3-1 (source) into unstable (Nathan Scott)
  • [2024-09-17] Accepted pcp 6.3.1-1 (source) into unstable (Nathan Scott)
  • [2024-07-30] Accepted pcp 6.3.0-1 (source) into unstable (Nathan Scott)
  • [2024-06-03] pcp REMOVED from testing (Debian testing watch)
  • 1
  • 2
bugs [bug history graph]
  • all: 2
  • RC: 0
  • I&N: 2
  • M&W: 0
  • F&P: 0
  • patch: 0
links
  • homepage
  • lintian (2, 18)
  • buildd: logs, reproducibility, cross
  • popcon
  • browse source code
  • other distros
  • security tracker
  • screenshots
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 7.1.5-1

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