Rebase to pcp-6.2.0-1 with latest upstream fixes and features
Resolves: RHEL-2317
This commit is contained in:
parent
1e8da71c53
commit
2f0b5967c9
73
pcp.spec
73
pcp.spec
@ -1,14 +1,13 @@
|
||||
Name: pcp
|
||||
Version: 6.1.1
|
||||
Release: 4%{?dist}
|
||||
Version: 6.2.0
|
||||
Release: 1%{?dist}
|
||||
Summary: System-level performance monitoring and performance management
|
||||
License: GPL-2.0-or-later AND LGPL-2.1-or-later AND CC-BY-3.0
|
||||
URL: https://pcp.io
|
||||
|
||||
Source0: https://github.com/performancecopilot/pcp/releases/pcp-%{version}.src.tar.gz
|
||||
|
||||
Patch1: redhat-issues-RHEL-17335-ss-listen.patch
|
||||
Patch2: redhat-issues-RHEL-17649-ss-udp.patch
|
||||
Patch1: redhat-issues-RHEL-2317-default-archive-version.patch
|
||||
|
||||
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
|
||||
ExcludeArch: %{ix86}
|
||||
@ -207,6 +206,17 @@ ExcludeArch: %{ix86}
|
||||
%global disable_noarch 1
|
||||
%endif
|
||||
|
||||
# build pcp2arrow whenever possible (no RHEL or 32 bit x86 Fedora python3-arrow)
|
||||
%if 0%{?fedora} >= 36
|
||||
%ifarch %{ix86} x86_64
|
||||
%global disable_arrow 1
|
||||
%else
|
||||
%global disable_arrow 0
|
||||
%endif
|
||||
%else
|
||||
%global disable_arrow 1
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} >= 24
|
||||
%global disable_xlsx 0
|
||||
%else
|
||||
@ -874,6 +884,30 @@ Performance Co-Pilot (PCP) front-end tools for exporting metric values
|
||||
in JSON format to Apache Spark. See https://spark.apache.org/ for
|
||||
further details on Apache Spark.
|
||||
|
||||
#
|
||||
# pcp-export-pcp2arrow
|
||||
#
|
||||
%if !%{disable_arrow}
|
||||
%package export-pcp2arrow
|
||||
License: GPL-2.0-or-later
|
||||
Summary: Performance Co-Pilot tools for exporting PCP metrics to Apache Arrow
|
||||
URL: https://pcp.io
|
||||
Requires: pcp-libs >= %{version}-%{release}
|
||||
%if !%{disable_python3}
|
||||
Requires: python3-pcp = %{version}-%{release}
|
||||
Requires: python3-pyarrow
|
||||
BuildRequires: python3-pyarrow
|
||||
%else
|
||||
Requires: %{__python2}-pcp = %{version}-%{release}
|
||||
Requires: %{__python2}-pyarrow
|
||||
BuildRequires: %{__python2}-pyarrow
|
||||
%endif
|
||||
|
||||
%description export-pcp2arrow
|
||||
Performance Co-Pilot (PCP) front-end tool for exporting metric values
|
||||
to Apache Arrow, which supports the columnar parquet data format.
|
||||
%endif
|
||||
|
||||
#
|
||||
# pcp-export-pcp2xlsx
|
||||
#
|
||||
@ -897,6 +931,7 @@ BuildRequires: %{__python2}-openpyxl
|
||||
Performance Co-Pilot (PCP) front-end tools for exporting metric values
|
||||
in Excel spreadsheet format.
|
||||
%endif
|
||||
|
||||
#
|
||||
# pcp-export-pcp2xml
|
||||
#
|
||||
@ -1064,7 +1099,7 @@ Summary: Performance Co-Pilot (PCP) metrics for NutCracker (TwemCache)
|
||||
URL: https://pcp.io
|
||||
Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release}
|
||||
Requires: perl-PCP-PMDA = %{version}-%{release}
|
||||
Requires: perl(YAML::XS::LibYAML)
|
||||
Requires: perl(YAML::XS)
|
||||
Requires: perl(JSON)
|
||||
|
||||
%description pmda-nutcracker
|
||||
@ -1505,7 +1540,7 @@ Summary: Performance Co-Pilot (PCP) metrics from eBPF ELF modules
|
||||
URL: https://pcp.io
|
||||
Requires: pcp = %{version}-%{release} pcp-libs = %{version}-%{release}
|
||||
Requires: libbpf
|
||||
BuildRequires: libbpf-devel clang llvm bpftool
|
||||
BuildRequires: libbpf-devel clang llvm
|
||||
%description pmda-bpf
|
||||
This package contains the PCP Performance Metrics Domain Agent (PMDA) for
|
||||
extracting performance metrics from eBPF ELF modules.
|
||||
@ -2468,7 +2503,7 @@ sed -i -e 's/usr\/lib\//usr\/lib64\//' pcp-libs-devel-files
|
||||
|
||||
# some special cases for devel
|
||||
awk '{print $NF}' $DIST_MANIFEST |\
|
||||
grep -E 'pcp\/(examples|demos)|(etc/pcp|pcp/pmdas)\/(sample|simple|trivial|txmon)|bin/(pmdbg|pmclient|pmerr|genpmda)' | grep -E -v tutorials >>pcp-devel-files
|
||||
grep -E 'pcp/(examples|demos)|(etc/pcp|pcp/pmdas)/(sample|simple|trivial|txmon)|bin/(pmdbg|pmclient|pmerr|genpmda)' | grep -E -v tutorials >>pcp-devel-files
|
||||
|
||||
# Patterns for files to be marked %%config(noreplace).
|
||||
# Note: /etc/pcp.{conf,env,sh} are %%config but not noreplace
|
||||
@ -2520,6 +2555,7 @@ basic_manifest | keep 'sheet2pcp' >pcp-import-sheet2pcp-files
|
||||
basic_manifest | keep 'mrtg2pcp' >pcp-import-mrtg2pcp-files
|
||||
basic_manifest | keep 'ganglia2pcp' >pcp-import-ganglia2pcp-files
|
||||
basic_manifest | keep 'collectl2pcp' >pcp-import-collectl2pcp-files
|
||||
basic_manifest | keep 'pcp2arrow' >pcp-export-pcp2arrow-files
|
||||
basic_manifest | keep 'pcp2elasticsearch' >pcp-export-pcp2elasticsearch-files
|
||||
basic_manifest | keep 'pcp2influxdb' >pcp-export-pcp2influxdb-files
|
||||
basic_manifest | keep 'pcp2xlsx' >pcp-export-pcp2xlsx-files
|
||||
@ -2642,7 +2678,7 @@ do \
|
||||
done
|
||||
|
||||
for export_package in \
|
||||
pcp2elasticsearch pcp2graphite pcp2influxdb pcp2json \
|
||||
pcp2arrow pcp2elasticsearch pcp2graphite pcp2influxdb pcp2json \
|
||||
pcp2spark pcp2xlsx pcp2xml pcp2zabbix zabbix-agent ; \
|
||||
do \
|
||||
export_packages="$export_packages pcp-export-$export_package"; \
|
||||
@ -2777,8 +2813,8 @@ semodule -r pcpqa >/dev/null 2>&1 || true
|
||||
chown -R pcpqa:pcpqa %{_testsdir} 2>/dev/null
|
||||
%if 0%{?rhel}
|
||||
%if !%{disable_systemd}
|
||||
systemctl restart pmcd pmlogger >/dev/null 2>&1
|
||||
systemctl enable pmcd pmlogger >/dev/null 2>&1
|
||||
systemctl restart pcp-reboot-init pmcd pmlogger >/dev/null 2>&1
|
||||
systemctl enable pcp-reboot-init pmcd pmlogger >/dev/null 2>&1
|
||||
%else
|
||||
/sbin/chkconfig --add pmcd >/dev/null 2>&1
|
||||
/sbin/chkconfig --add pmlogger >/dev/null 2>&1
|
||||
@ -3063,9 +3099,9 @@ if [ "$1" -eq 0 ]
|
||||
then
|
||||
# stop daemons before erasing the package
|
||||
%if !%{disable_systemd}
|
||||
%systemd_preun pmlogger_check.timer pmlogger_daily.timer pmlogger_farm_check.timer pmlogger_farm_check.service pmlogger_farm.service pmlogger.service pmie_check.timer pmie_daily.timer pmie_farm_check.timer pmie_farm_check.service pmie_farm.service pmie.service pmproxy.service pmfind.service pmcd.service
|
||||
%systemd_preun pmlogger_check.timer pmlogger_daily.timer pmlogger_farm_check.timer pmlogger_farm_check.service pmlogger_farm.service pmlogger.service pmie_check.timer pmie_daily.timer pmie_farm_check.timer pmie_farm_check.service pmie_farm.service pmie.service pmproxy.service pmfind.service pmcd.service pcp-reboot-init.service
|
||||
|
||||
systemctl stop pmlogger.service pmie.service pmproxy.service pmfind.service pmcd.service >/dev/null 2>&1
|
||||
systemctl stop pmlogger.service pmie.service pmproxy.service pmfind.service pmcd.service pcp-reboot-init.service >/dev/null 2>&1
|
||||
%else
|
||||
/sbin/service pmlogger stop >/dev/null 2>&1
|
||||
/sbin/service pmie stop >/dev/null 2>&1
|
||||
@ -3097,10 +3133,10 @@ for PMDA in dm nfsclient openmetrics ; do
|
||||
done
|
||||
# auto-enable these usually optional pmie rules
|
||||
%{run_pmieconf "$PCP_PMIECONFIG_DIR" dmthin}
|
||||
%if 0%{?rhel}
|
||||
%if 0%{?rhel} <= 9
|
||||
%if !%{disable_systemd}
|
||||
systemctl restart pmcd pmlogger pmie >/dev/null 2>&1
|
||||
systemctl enable pmcd pmlogger pmie >/dev/null 2>&1
|
||||
systemctl restart pcp-reboot-init pmcd pmlogger pmie >/dev/null 2>&1
|
||||
systemctl enable pcp-reboot-init pmcd pmlogger pmie >/dev/null 2>&1
|
||||
%else
|
||||
/sbin/chkconfig --add pmcd >/dev/null 2>&1
|
||||
/sbin/chkconfig --add pmlogger >/dev/null 2>&1
|
||||
@ -3350,6 +3386,10 @@ fi
|
||||
%files export-pcp2influxdb -f pcp-export-pcp2influxdb-files.rpm
|
||||
%endif
|
||||
|
||||
%if !%{disable_arrow}
|
||||
%files export-pcp2arrow -f pcp-export-pcp2arrow-files.rpm
|
||||
%endif
|
||||
|
||||
%if !%{disable_xlsx}
|
||||
%files export-pcp2xlsx -f pcp-export-pcp2xlsx-files.rpm
|
||||
%endif
|
||||
@ -3452,6 +3492,9 @@ fi
|
||||
%files zeroconf -f pcp-zeroconf-files.rpm
|
||||
|
||||
%changelog
|
||||
* Mon Feb 12 2024 Nathan Scott <nathans@redhat.com> - 6.2.0-1
|
||||
- Rebase to latest stable version of PCP (RHEL-2317)
|
||||
|
||||
* Thu Dec 14 2023 Nathan Scott <nathans@redhat.com> - 6.1.1-4
|
||||
- Fix pcp-ss(1) handling of UDP packet states (RHEL-17649)
|
||||
|
||||
|
@ -1,186 +0,0 @@
|
||||
diff -Naurp pcp-6.1.1.orig/qa/1921 pcp-6.1.1/qa/1921
|
||||
--- pcp-6.1.1.orig/qa/1921 1970-01-01 10:00:00.000000000 +1000
|
||||
+++ pcp-6.1.1/qa/1921 2023-11-29 14:21:22.969455810 +1100
|
||||
@@ -0,0 +1,82 @@
|
||||
+#!/bin/sh
|
||||
+# PCP QA Test No. 1921
|
||||
+# Exercise default option handling for pcp-ss(1).
|
||||
+#
|
||||
+# Copyright (c) 2023 Red Hat. All Rights Reserved.
|
||||
+#
|
||||
+
|
||||
+seq=`basename $0`
|
||||
+echo "QA output created by $seq"
|
||||
+
|
||||
+# get standard environment, filters and checks
|
||||
+. ./common.product
|
||||
+. ./common.filter
|
||||
+. ./common.check
|
||||
+
|
||||
+[ $PCP_PLATFORM = linux ] || _notrun "Linux-specific sockets testing"
|
||||
+[ -f $PCP_BINADM_DIR/pcp-ss ] || _notrun "pcp-ss utility is not installed"
|
||||
+[ -f $PCP_PMDAS_DIR/sockets/pmdasockets ] || _notrun "sockets PMDA not installed"
|
||||
+
|
||||
+_cleanup()
|
||||
+{
|
||||
+ cd $here
|
||||
+ $sudo rm -rf $tmp $tmp.*
|
||||
+}
|
||||
+
|
||||
+status=0 # success is the default!
|
||||
+$sudo rm -rf $tmp $tmp.* $seq.full
|
||||
+
|
||||
+pmdasockets_install()
|
||||
+{
|
||||
+ # start from known starting points
|
||||
+ cd $PCP_PMDAS_DIR/sockets
|
||||
+ $sudo ./Remove >/dev/null 2>&1
|
||||
+
|
||||
+ echo
|
||||
+ echo "=== sockets agent installation ==="
|
||||
+ $sudo ./Install </dev/null >$tmp.out 2>&1
|
||||
+ cat $tmp.out >>$here/$seq.full
|
||||
+ # Check sockets metrics have appeared ... X metrics and Y values
|
||||
+ _filter_pmda_install <$tmp.out \
|
||||
+ | sed \
|
||||
+ -e 's/[0-9][0-9]* warnings, //' \
|
||||
+ | $PCP_AWK_PROG '
|
||||
+/Check network.persocket metrics have appeared/ {
|
||||
+ if ($7 >= 50 && $7 <= 99) $7 = "X"
|
||||
+ if ($10 >= 0) $10 = "Y"
|
||||
+ }
|
||||
+ { print }'
|
||||
+}
|
||||
+
|
||||
+pmdasockets_remove()
|
||||
+{
|
||||
+ echo
|
||||
+ echo "=== remove sockets agent ==="
|
||||
+ $sudo ./Remove >$tmp.out 2>&1
|
||||
+ _filter_pmda_remove <$tmp.out
|
||||
+}
|
||||
+
|
||||
+# real QA test starts here
|
||||
+_prepare_pmda sockets
|
||||
+trap "_cleanup_pmda sockets; exit \$status" 0 1 2 3 15
|
||||
+_stop_auto_restart pmcd
|
||||
+
|
||||
+pmdasockets_install
|
||||
+echo
|
||||
+
|
||||
+pcp ss > $tmp.out 2>&1
|
||||
+if grep -q LISTEN $tmp.out # do not show LISTEN state by default
|
||||
+then
|
||||
+ echo Failed LISTEN check
|
||||
+ cat $tmp.out
|
||||
+ status=1
|
||||
+ exit
|
||||
+else
|
||||
+ echo Passed LISTEN check
|
||||
+ cat $tmp.out >> $here/$seq.full
|
||||
+fi
|
||||
+
|
||||
+pmdasockets_remove
|
||||
+
|
||||
+# success, all done
|
||||
+exit
|
||||
diff -Naurp pcp-6.1.1.orig/qa/1921.out pcp-6.1.1/qa/1921.out
|
||||
--- pcp-6.1.1.orig/qa/1921.out 1970-01-01 10:00:00.000000000 +1000
|
||||
+++ pcp-6.1.1/qa/1921.out 2023-11-29 14:21:22.969455810 +1100
|
||||
@@ -0,0 +1,17 @@
|
||||
+QA output created by 1921
|
||||
+
|
||||
+=== sockets agent installation ===
|
||||
+Updating the Performance Metrics Name Space (PMNS) ...
|
||||
+Terminate PMDA if already installed ...
|
||||
+[...install files, make output...]
|
||||
+Updating the PMCD control file, and notifying PMCD ...
|
||||
+Check network.persocket metrics have appeared ... X metrics and Y values
|
||||
+
|
||||
+Passed LISTEN check
|
||||
+
|
||||
+=== remove sockets agent ===
|
||||
+Culling the Performance Metrics Name Space ...
|
||||
+network.persocket ... done
|
||||
+Updating the PMCD control file, and notifying PMCD ...
|
||||
+[...removing files...]
|
||||
+Check network.persocket metrics have gone away ... OK
|
||||
diff -Naurp pcp-6.1.1.orig/qa/group pcp-6.1.1/qa/group
|
||||
--- pcp-6.1.1.orig/qa/group 2023-11-29 14:21:04.266425958 +1100
|
||||
+++ pcp-6.1.1/qa/group 2023-11-29 14:21:22.978455824 +1100
|
||||
@@ -2090,6 +2090,7 @@ x11
|
||||
1912 pmie local
|
||||
1913 pmie local valgrind
|
||||
1914 atop local
|
||||
+1921 pmda.sockets local
|
||||
1927 pmda.sockets local
|
||||
1931 pmda.bpf local
|
||||
1936 other local pmclient
|
||||
diff -Naurp pcp-6.1.1.orig/src/pcp/ss/pcp-ss.1 pcp-6.1.1/src/pcp/ss/pcp-ss.1
|
||||
--- pcp-6.1.1.orig/src/pcp/ss/pcp-ss.1 2023-11-29 14:21:04.266425958 +1100
|
||||
+++ pcp-6.1.1/src/pcp/ss/pcp-ss.1 2023-11-29 14:21:22.978455824 +1100
|
||||
@@ -168,10 +168,10 @@ show help message and exit
|
||||
output version information
|
||||
.TP 5
|
||||
\fB\-n\fP, \fB\-\-numeric\fP
|
||||
-don't resolve service names
|
||||
+don't resolve service names (currently always set)
|
||||
.TP 5
|
||||
\fB\-r\fP, \fB\-\-resolve\fP
|
||||
-resolve host names
|
||||
+resolve host names (not yet implemented)
|
||||
.TP 5
|
||||
\fB\-a\fP, \fB\-\-all\fP
|
||||
display all sockets
|
||||
diff -Naurp pcp-6.1.1.orig/src/pcp/ss/pcp-ss.py pcp-6.1.1/src/pcp/ss/pcp-ss.py
|
||||
--- pcp-6.1.1.orig/src/pcp/ss/pcp-ss.py 2023-11-29 14:21:04.267425959 +1100
|
||||
+++ pcp-6.1.1/src/pcp/ss/pcp-ss.py 2023-11-29 14:21:22.979455826 +1100
|
||||
@@ -25,9 +25,6 @@ from pcp import pmapi
|
||||
from cpmapi import PM_CONTEXT_ARCHIVE, PM_CONTEXT_HOST
|
||||
from cpmapi import PM_ERR_EOL, PM_MODE_INTERP
|
||||
|
||||
-if sys.version >= '3':
|
||||
- long = int
|
||||
-
|
||||
# pmns prefix for pmdasockets(1) metrics
|
||||
pmns = "network.persocket"
|
||||
|
||||
@@ -57,8 +54,8 @@ class SS(object):
|
||||
p.add_argument('-V', '--version', action='store_true', help='output version information')
|
||||
p.add_argument('-n', '--numeric', action='store_true', help='don\'t resolve service names or port names (currently always set)')
|
||||
p.add_argument('-r', '--resolve', action='store_true', help='resolve host names (currently never set)')
|
||||
- p.add_argument('-a', '--all', action='store_true', help='display sockets in any state, not just listening')
|
||||
- p.add_argument('-l', '--listening', action='store_true', help='display only listening sockets')
|
||||
+ p.add_argument('-a', '--all', action='store_true', help='display both listening and non-listening states')
|
||||
+ p.add_argument('-l', '--listening', action='store_true', default=False, help='display only listening sockets')
|
||||
p.add_argument('-o', '--options', action='store_true', help='show timer information')
|
||||
p.add_argument('-e', '--extended', action='store_true', help='show detailed socket information')
|
||||
p.add_argument('-m', '--memory', action='store_true', help='show socket memory usage')
|
||||
@@ -92,9 +89,6 @@ class SS(object):
|
||||
# default to both ipv4 and ipv6, subject to the prevailing filter
|
||||
args.ipv4 = args.ipv6 = True
|
||||
|
||||
- if args.all:
|
||||
- args.listening = True
|
||||
-
|
||||
if args.events or args.context or args.contexts or args.net or args.summary or args.processes:
|
||||
print("Warning: --events, --context --net, --summary and --processes options are not implemented")
|
||||
|
||||
@@ -283,13 +277,16 @@ class SS(object):
|
||||
return ret
|
||||
|
||||
def filter_listening(self, inst):
|
||||
- """ filter on tcp state, return True if socket is listening """
|
||||
+ """ filter on tcp socket listening state """
|
||||
if self.args.all:
|
||||
return True
|
||||
state = self.valuesD["state"][inst]
|
||||
if self.args.listening:
|
||||
if state != "LISTEN":
|
||||
return False
|
||||
+ else:
|
||||
+ if state == "LISTEN":
|
||||
+ return False
|
||||
return True
|
||||
|
||||
def report(self):
|
@ -1,295 +0,0 @@
|
||||
commit 885ce6abd66040cb78e985013242b43e7dd5ca14
|
||||
Author: Nathan Scott <nathans@redhat.com>
|
||||
Date: Fri Dec 8 11:29:25 2023 +1100
|
||||
|
||||
pcp-ss: fix the UDP UNCONN vs LISTEN state handling
|
||||
|
||||
Resolves Red Hat issue RHEL-17649
|
||||
|
||||
diff --git a/qa/1921 b/qa/1921
|
||||
index e65dc369d..94c7a7383 100755
|
||||
--- a/qa/1921
|
||||
+++ b/qa/1921
|
||||
@@ -76,6 +76,18 @@ else
|
||||
cat $tmp.out >> $here/$seq.full
|
||||
fi
|
||||
|
||||
+pcp ss -u > $tmp.out 2>&1
|
||||
+if grep -q UNCONN $tmp.out # do not show UNCONN state by default in UDP mode
|
||||
+then
|
||||
+ echo Failed UDP UNCONN check
|
||||
+ cat $tmp.out
|
||||
+ status=1
|
||||
+ exit
|
||||
+else
|
||||
+ echo Passed UDP UNCONN check
|
||||
+ cat $tmp.out >> $here/$seq.full
|
||||
+fi
|
||||
+
|
||||
pmdasockets_remove
|
||||
|
||||
# success, all done
|
||||
diff --git a/qa/1921.out b/qa/1921.out
|
||||
index 2331de828..0f4f815fc 100644
|
||||
--- a/qa/1921.out
|
||||
+++ b/qa/1921.out
|
||||
@@ -8,6 +8,7 @@ Updating the PMCD control file, and notifying PMCD ...
|
||||
Check network.persocket metrics have appeared ... X metrics and Y values
|
||||
|
||||
Passed LISTEN check
|
||||
+Passed UDP UNCONN check
|
||||
|
||||
=== remove sockets agent ===
|
||||
Culling the Performance Metrics Name Space ...
|
||||
diff --git a/src/pcp/ss/pcp-ss.py b/src/pcp/ss/pcp-ss.py
|
||||
index 91bb81a97..72e0607c1 100755
|
||||
--- a/src/pcp/ss/pcp-ss.py
|
||||
+++ b/src/pcp/ss/pcp-ss.py
|
||||
@@ -254,7 +254,8 @@ class SS(object):
|
||||
if self.args.tcp and netid == "tcp":
|
||||
ret = True
|
||||
elif self.args.udp and netid == "udp":
|
||||
- ret = True
|
||||
+ state = self.valuesD["state"][inst]
|
||||
+ ret = bool(state != "UNCONN" or self.args.listening)
|
||||
elif self.args.unix and netid == "unix":
|
||||
ret = True
|
||||
elif self.args.raw and netid == "raw":
|
||||
@@ -282,6 +283,9 @@ class SS(object):
|
||||
return True
|
||||
state = self.valuesD["state"][inst]
|
||||
if self.args.listening:
|
||||
+ netid = self.valuesD["netid"][inst]
|
||||
+ if state == "UNCONN" and netid == 'udp':
|
||||
+ return True
|
||||
if state != "LISTEN":
|
||||
return False
|
||||
else:
|
||||
|
||||
commit 2b184367378a1a69a48da09e284256ed874ffac2
|
||||
Author: Nathan Scott <nathans@redhat.com>
|
||||
Date: Fri Dec 8 11:43:24 2023 +1100
|
||||
|
||||
docs: do not document (nor accept) unimplemented pcp-ss options
|
||||
|
||||
Related to Red Hat issue RHEL-17334
|
||||
|
||||
diff --git a/src/pcp/ss/pcp-ss.1 b/src/pcp/ss/pcp-ss.1
|
||||
index 9598fa8d8..69caf35ea 100644
|
||||
--- a/src/pcp/ss/pcp-ss.1
|
||||
+++ b/src/pcp/ss/pcp-ss.1
|
||||
@@ -1,6 +1,6 @@
|
||||
'\"macro stdmacro
|
||||
.\"
|
||||
-.\" Copyright (c) 2021 Red Hat.
|
||||
+.\" Copyright (c) 2021,2023 Red Hat.
|
||||
.\"
|
||||
.\" This program is free software; you can redistribute it and/or modify it
|
||||
.\" under the terms of the GNU General Public License as published by the
|
||||
@@ -169,9 +169,9 @@ output version information
|
||||
.TP 5
|
||||
\fB\-n\fP, \fB\-\-numeric\fP
|
||||
don't resolve service names (currently always set)
|
||||
-.TP 5
|
||||
-\fB\-r\fP, \fB\-\-resolve\fP
|
||||
-resolve host names (not yet implemented)
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-r\fP, \fB\-\-resolve\fP
|
||||
+'\" resolve host names (not yet implemented)
|
||||
.TP 5
|
||||
\fB\-a\fP, \fB\-\-all\fP
|
||||
display all sockets
|
||||
@@ -187,60 +187,60 @@ show detailed socket information
|
||||
.TP 5
|
||||
\fB\-m\fP, \fB\-\-memory\fP
|
||||
show socket memory usage
|
||||
-.TP 5
|
||||
-\fB\-p\fP, \fB\-\-processes\fP
|
||||
-show process using socket
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-p\fP, \fB\-\-processes\fP
|
||||
+'\" show process using socket
|
||||
.TP 5
|
||||
\fB\-i\fP, \fB\-\-info\fP
|
||||
show internal TCP information
|
||||
-.TP 5
|
||||
-\fB\-s\fP, \fB\-\-summary\fP
|
||||
-show socket usage summary
|
||||
-.TP 5
|
||||
-\fB\-b\fP, \fB\-\-bpf\fP
|
||||
-show bpf filter socket information
|
||||
-.TP 5
|
||||
-\fB\-E\fP, \fB\-\-events\fP
|
||||
-continually display sockets as they are destroyed
|
||||
-.TP 5
|
||||
-\fB\-Z\fP, \fB\-\-context\fP
|
||||
-display process SELinux security contexts
|
||||
-.TP 5
|
||||
-\fB\-z\fP, \fB\-\-contexts\fP
|
||||
-display process and socket SELinux security contexts
|
||||
-.TP 5
|
||||
-\fB\-N\fP, \fB\-\-net\fP
|
||||
-switch to the specified network namespace name
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-s\fP, \fB\-\-summary\fP
|
||||
+'\" show socket usage summary
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-b\fP, \fB\-\-bpf\fP
|
||||
+'\" show bpf filter socket information
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-E\fP, \fB\-\-events\fP
|
||||
+'\" continually display sockets as they are destroyed
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-Z\fP, \fB\-\-context\fP
|
||||
+'\" display process SELinux security contexts
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-z\fP, \fB\-\-contexts\fP
|
||||
+'\" display process and socket SELinux security contexts
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-N\fP, \fB\-\-net\fP
|
||||
+'\" switch to the specified network namespace name
|
||||
.TP 5
|
||||
\fB\-4\fP, \fB\-\-ipv4\fP
|
||||
display only IP version 4 sockets
|
||||
.TP 5
|
||||
\fB\-6\fP, \fB\-\-ipv6\fP
|
||||
display only IP version 6 sockets
|
||||
-.TP 5
|
||||
-\fB\-0\fP, \fB\-\-packet\fP
|
||||
-display PACKET sockets
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-0\fP, \fB\-\-packet\fP
|
||||
+'\" display PACKET sockets
|
||||
.TP 5
|
||||
\fB\-t\fP, \fB\-\-tcp\fP
|
||||
display only TCP sockets
|
||||
-.TP 5
|
||||
-\fB\-M\fP, \fB\-\-mptcp\fP
|
||||
-display only MPTCP sockets
|
||||
-.TP 5
|
||||
-\fB\-S\fP, \fB\-\-sctp\fP
|
||||
-display only SCTP sockets
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-M\fP, \fB\-\-mptcp\fP
|
||||
+'\" display only MPTCP sockets
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-S\fP, \fB\-\-sctp\fP
|
||||
+'\" display only SCTP sockets
|
||||
.TP 5
|
||||
\fB\-u\fP, \fB\-\-udp\fP
|
||||
display only UDP sockets
|
||||
-.TP 5
|
||||
-\fB\-d\fP, \fB\-\-dccp\fP
|
||||
-display only DCCP sockets
|
||||
-.TP 5
|
||||
-\fB\-w\fP, \fB\-\-raw\fP
|
||||
-display only RAW sockets
|
||||
-.TP 5
|
||||
-\fB\-x\fP, \fB\-\-unix\fP
|
||||
-display only Unix domain sockets
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-d\fP, \fB\-\-dccp\fP
|
||||
+'\" display only DCCP sockets
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-w\fP, \fB\-\-raw\fP
|
||||
+'\" display only RAW sockets
|
||||
+'\" .TP 5
|
||||
+'\" \fB\-x\fP, \fB\-\-unix\fP
|
||||
+'\" display only Unix domain sockets
|
||||
.TP 5
|
||||
\fB\-H\fP, \fB\-\-noheader\fP
|
||||
Suppress header line
|
||||
diff --git a/src/pcp/ss/pcp-ss.py b/src/pcp/ss/pcp-ss.py
|
||||
index 72e0607c1..74952911a 100755
|
||||
--- a/src/pcp/ss/pcp-ss.py
|
||||
+++ b/src/pcp/ss/pcp-ss.py
|
||||
@@ -53,45 +53,42 @@ class SS(object):
|
||||
p = argparse.ArgumentParser()
|
||||
p.add_argument('-V', '--version', action='store_true', help='output version information')
|
||||
p.add_argument('-n', '--numeric', action='store_true', help='don\'t resolve service names or port names (currently always set)')
|
||||
- p.add_argument('-r', '--resolve', action='store_true', help='resolve host names (currently never set)')
|
||||
+ #p.add_argument('-r', '--resolve', action='store_true', help='resolve host names (currently never set)')
|
||||
p.add_argument('-a', '--all', action='store_true', help='display both listening and non-listening states')
|
||||
p.add_argument('-l', '--listening', action='store_true', default=False, help='display only listening sockets')
|
||||
p.add_argument('-o', '--options', action='store_true', help='show timer information')
|
||||
p.add_argument('-e', '--extended', action='store_true', help='show detailed socket information')
|
||||
p.add_argument('-m', '--memory', action='store_true', help='show socket memory usage')
|
||||
- p.add_argument('-p', '--processes', action='store_true', help='show process using socket (not yet implemented)')
|
||||
+ #p.add_argument('-p', '--processes', action='store_true', help='show process using socket (not yet implemented)')
|
||||
p.add_argument('-i', '--info', action='store_true', help='show internal TCP information')
|
||||
- p.add_argument('-s', '--summary', action='store_true', help='show socket usage summary (not yet implemented)')
|
||||
- p.add_argument('-b', '--bpf', action='store_true', help='show bpf filter socket information (not yet implemented)')
|
||||
- p.add_argument('-E', '--events', action='store_true', help='continually display sockets as they are destroyed (not implemented)')
|
||||
- p.add_argument('-Z', '--context', action='store_true', help='display process SELinux security contexts (not implemented)')
|
||||
- p.add_argument('-z', '--contexts', action='store_true', help='display process and socket SELinux security contexts (not implemented)')
|
||||
- p.add_argument('-N', '--net', action='store_true', help='switch to the specified network namespace name (not implemented)')
|
||||
+ #p.add_argument('-s', '--summary', action='store_true', help='show socket usage summary (not yet implemented)')
|
||||
+ #p.add_argument('-b', '--bpf', action='store_true', help='show bpf filter socket information (not yet implemented)')
|
||||
+ #p.add_argument('-E', '--events', action='store_true', help='continually display sockets as they are destroyed (not implemented)')
|
||||
+ #p.add_argument('-Z', '--context', action='store_true', help='display process SELinux security contexts (not implemented)')
|
||||
+ #p.add_argument('-z', '--contexts', action='store_true', help='display process and socket SELinux security contexts (not implemented)')
|
||||
+ #p.add_argument('-N', '--net', action='store_true', help='switch to the specified network namespace name (not implemented)')
|
||||
p.add_argument('-4', '--ipv4', action='store_true', help='display only IP version 4 sockets')
|
||||
p.add_argument('-6', '--ipv6', action='store_true', help='display only IP version 6 sockets')
|
||||
- p.add_argument('-0', '--packet', action='store_true', help='display PACKET sockets (not implemented)')
|
||||
+ #p.add_argument('-0', '--packet', action='store_true', help='display PACKET sockets (not implemented)')
|
||||
p.add_argument('-t', '--tcp', action='store_true', help='display only TCP sockets')
|
||||
- p.add_argument('-M', '--mptcp', action='store_true', help='display only MPTCP sockets (not implemented)')
|
||||
- p.add_argument('-S', '--sctp', action='store_true', help='display only SCTP sockets (not implemented)')
|
||||
+ #p.add_argument('-M', '--mptcp', action='store_true', help='display only MPTCP sockets (not implemented)')
|
||||
+ #p.add_argument('-S', '--sctp', action='store_true', help='display only SCTP sockets (not implemented)')
|
||||
p.add_argument('-u', '--udp', action='store_true', help='display only UDP sockets')
|
||||
- p.add_argument('-d', '--dccp', action='store_true', help='display only DCCP sockets (not implemented)')
|
||||
- p.add_argument('-w', '--raw', action='store_true', help='display only RAW sockets (not implemented)')
|
||||
- p.add_argument('-x', '--unix', action='store_true', help='display only Unix domain sockets (not implemented)')
|
||||
+ #p.add_argument('-d', '--dccp', action='store_true', help='display only DCCP sockets (not implemented)')
|
||||
+ #p.add_argument('-w', '--raw', action='store_true', help='display only RAW sockets (not implemented)')
|
||||
+ #p.add_argument('-x', '--unix', action='store_true', help='display only Unix domain sockets (not implemented)')
|
||||
p.add_argument('-H', '--noheader', action='store_true', help='Suppress header line')
|
||||
p.add_argument('-O', '--oneline', action='store_true', help='print each socket\'s data on a single line')
|
||||
args = p.parse_args()
|
||||
|
||||
# special cases
|
||||
- if not (args.tcp or args.udp or args.mptcp or args.sctp or args.packet or args.dccp or args.raw or args.unix):
|
||||
- args.tcp = args.udp = args.mptcp = args.sctp = args.packet = args.dccp = args.raw = args.unix = True
|
||||
+ if not (args.tcp or args.udp): # or args.mptcp or args.sctp or args.packet or args.dccp or args.raw or args.unix):
|
||||
+ args.tcp = args.udp = True # args.mptcp = args.sctp = args.packet = args.dccp = args.raw = args.unix = True
|
||||
|
||||
if not (args.ipv4 or args.ipv6):
|
||||
# default to both ipv4 and ipv6, subject to the prevailing filter
|
||||
args.ipv4 = args.ipv6 = True
|
||||
|
||||
- if args.events or args.context or args.contexts or args.net or args.summary or args.processes:
|
||||
- print("Warning: --events, --context --net, --summary and --processes options are not implemented")
|
||||
-
|
||||
return args
|
||||
|
||||
def connect(self):
|
||||
commit 79fdfd6d01f3e1d2d8449af3a7d9e56f9bfc65b2
|
||||
Author: Jan Kurik <jkurik@redhat.com>
|
||||
Date: Wed Dec 13 18:03:08 2023 +0100
|
||||
|
||||
Fixed crash of interpreter when using -t/-u option
|
||||
|
||||
Cleanup of remained code for unix and raw sockets causing python
|
||||
interpreter to crash, generating a traceback.
|
||||
|
||||
diff --git a/src/pcp/ss/pcp-ss.py b/src/pcp/ss/pcp-ss.py
|
||||
index 74952911a..5cf8ef939 100755
|
||||
--- a/src/pcp/ss/pcp-ss.py
|
||||
+++ b/src/pcp/ss/pcp-ss.py
|
||||
@@ -253,10 +253,10 @@ class SS(object):
|
||||
elif self.args.udp and netid == "udp":
|
||||
state = self.valuesD["state"][inst]
|
||||
ret = bool(state != "UNCONN" or self.args.listening)
|
||||
- elif self.args.unix and netid == "unix":
|
||||
- ret = True
|
||||
- elif self.args.raw and netid == "raw":
|
||||
- ret = True
|
||||
+ #elif self.args.unix and netid == "unix":
|
||||
+ # ret = True
|
||||
+ #elif self.args.raw and netid == "raw":
|
||||
+ # ret = True
|
||||
return ret
|
||||
|
||||
def filter_ipv46(self, inst):
|
12
redhat-issues-RHEL-2317-default-archive-version.patch
Normal file
12
redhat-issues-RHEL-2317-default-archive-version.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Naurp pcp-6.2.0.orig/src/include/pcp.conf.in pcp-6.2.0/src/include/pcp.conf.in
|
||||
--- pcp-6.2.0.orig/src/include/pcp.conf.in 2023-12-08 10:24:17.000000000 +1100
|
||||
+++ pcp-6.2.0/src/include/pcp.conf.in 2024-02-12 04:10:10.649953498 +1100
|
||||
@@ -140,7 +140,7 @@ PCP_ARCHIVE_DIR=@pcp_archive_dir@
|
||||
|
||||
# default version for generating PCP archives
|
||||
# Possible versions: 2, 3 (3 requires PCP 6+)
|
||||
-PCP_ARCHIVE_VERSION=3
|
||||
+PCP_ARCHIVE_VERSION=2
|
||||
|
||||
# directory for daily PCP activity reports
|
||||
# Standard path: /var/log/pcp/sa
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (pcp-6.1.1.src.tar.gz) = 04ab4a6e24f2f4b69e750bf21ff5c717717fb7d2a60dc9317a9721b808e42939e6dd113cf8ea1f40d98edcd176dbb24c584cc41b80249a57c9db3c256230aa19
|
||||
SHA512 (pcp-6.2.0.src.tar.gz) = 249ceebf9b87d03fd024d2c75c1f32362cad3d315b68bf3bc305705cbec564d0c162d695988332183f1a595bc88f80929e7d111435ae09ce3c240e0df9b47a1b
|
||||
|
Loading…
Reference in New Issue
Block a user