import pcp-5.3.5-8.el9

This commit is contained in:
CentOS Sources 2022-03-01 07:09:24 -05:00 committed by Stepan Oksanichenko
parent 647e38ab29
commit 6d9ff026e8
7 changed files with 334437 additions and 129 deletions

View File

@ -0,0 +1,193 @@
commit 6b907e90c74fce82d6b712493d8b362bdd1a1ec1
Author: Nathan Scott <nathans@redhat.com>
Date: Tue Dec 14 08:54:14 2021 +1100
pmlogconf: switch to the bulk pmLookupDescs(3) interface
No functional change, all existing regression tests pass.
Related to Red Hat BZ #1973833.
diff --git a/src/pmlogconf/pmlogconf.c b/src/pmlogconf/pmlogconf.c
index fa1156859d..ef4fc08bbd 100644
--- a/src/pmlogconf/pmlogconf.c
+++ b/src/pmlogconf/pmlogconf.c
@@ -473,13 +473,19 @@ fetch_groups(void)
{
static pmResult *result;
const char **names;
+ pmDesc *descs;
pmID *pmids;
- int i, n, sts;
+ int i, n, sts, count;
- /* prepare arrays of names and identifiers for PMAPI metric lookup */
+ /* prepare arrays of names, descriptors and IDs for PMAPI metric lookup */
if ((names = calloc(ngroups, sizeof(char *))) == NULL)
return -ENOMEM;
+ if ((descs = calloc(ngroups, sizeof(pmDesc))) == NULL) {
+ free(names);
+ return -ENOMEM;
+ }
if ((pmids = calloc(ngroups, sizeof(pmID))) == NULL) {
+ free(descs);
free(names);
return -ENOMEM;
}
@@ -490,15 +496,16 @@ fetch_groups(void)
continue;
names[n++] = (const char *)groups[i].metric;
}
+ count = n;
- if ((sts = pmLookupName(n, names, pmids)) < 0) {
- if (n == 1)
+ if ((sts = pmLookupName(count, names, pmids)) < 0) {
+ if (count == 1)
groups[0].pmid = PM_ID_NULL;
else
fprintf(stderr, "%s: cannot lookup metric names: %s\n",
pmGetProgname(), pmErrStr(sts));
}
- else if ((sts = pmFetch(n, pmids, &result)) < 0) {
+ else if ((sts = pmFetch(count, pmids, &result)) < 0) {
fprintf(stderr, "%s: cannot fetch metric values: %s\n",
pmGetProgname(), pmErrStr(sts));
}
@@ -510,6 +517,13 @@ fetch_groups(void)
else
groups[i].pmid = pmids[n++];
}
+ /* descriptor lookup, descs_hash handles failure here */
+ (void) pmLookupDescs(count, pmids, descs);
+
+ /* create a hash over the descs for quick PMID lookup */
+ if ((sts = descs_hash(count, descs)) < 0)
+ fprintf(stderr, "%s: cannot hash metric descs: %s\n",
+ pmGetProgname(), pmErrStr(sts));
/* create a hash over the result for quick PMID lookup */
if ((sts = values_hash(result)) < 0)
fprintf(stderr, "%s: cannot hash metric values: %s\n",
@@ -806,14 +820,16 @@ evaluate_string_regexp(group_t *group, regex_cmp_t compare)
int i, found;
pmValueSet *vsp;
pmValue *vp;
+ pmDesc *dp;
pmAtomValue atom;
regex_t regex;
int sts, type;
- if ((vsp = metric_values(group->pmid)) == NULL)
+ if ((vsp = metric_values(group->pmid)) == NULL ||
+ (dp = metric_desc(group->pmid)) == NULL)
return 0;
- type = metric_type(group->pmid);
+ type = dp->type;
if (type < 0 || type > PM_TYPE_STRING) {
fprintf(stderr, "%s: %s uses regular expression on non-scalar metric\n",
pmGetProgname(), group->tag);
@@ -849,11 +865,14 @@ evaluate_string_regexp(group_t *group, regex_cmp_t compare)
static int
evaluate_values(group_t *group, numeric_cmp_t ncmp, string_cmp_t scmp)
{
- int type = metric_type(group->pmid);
+ pmDesc *dp;
+
+ if ((dp = metric_desc(group->pmid)) == NULL)
+ return 0;
- if (type == PM_TYPE_STRING)
+ if (dp->type == PM_TYPE_STRING)
return evaluate_string_values(group, scmp);
- return evaluate_number_values(group, type, ncmp);
+ return evaluate_number_values(group, dp->type, ncmp);
}
int
diff --git a/src/pmlogconf/util.c b/src/pmlogconf/util.c
index d44c2e529a..293eb2eca3 100644
--- a/src/pmlogconf/util.c
+++ b/src/pmlogconf/util.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020 Red Hat. All Rights Reserved.
+ * Copyright (c) 2020-2021 Red Hat. All Rights Reserved.
*
* 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
@@ -14,7 +14,7 @@
#include "util.h"
static __pmHashCtl valuesctl; /* pointers to values in pmResult */
-static __pmHashCtl typesctl; /* metric types from pmLookupDesc */
+static __pmHashCtl descsctl; /* metric descs from pmLookupDesc */
int
values_hash(pmResult *result)
@@ -47,27 +47,33 @@ metric_values(pmID pmid)
}
int
-metric_type(pmID pmid)
+descs_hash(int numpmid, pmDesc *descs)
{
- __pmHashNode *node;
- pmDesc desc;
- int sts, *data;
+ unsigned int i;
+ pmDesc *dp;
+ int sts;
- if (pmid == PM_IN_NULL)
- return PM_TYPE_UNKNOWN;
- if ((node = __pmHashSearch(pmid, &typesctl)) == NULL) {
- if ((sts = pmLookupDesc(pmid, &desc)) < 0)
- return sts;
- if ((data = malloc(sizeof(int))) == NULL)
- return sts;
- *data = desc.type;
- if ((sts = __pmHashAdd(pmid, data, &typesctl)) < 0) {
- free(data);
+ if ((sts = __pmHashPreAlloc(numpmid, &descsctl)) < 0)
+ return sts;
+
+ for (i = 0; i < numpmid; i++) {
+ dp = &descs[i];
+ if ((sts = __pmHashAdd(dp->pmid, dp, &descsctl)) < 0)
return sts;
- }
- return *data;
}
- return *(int *)node->data;
+ return numpmid;
+}
+
+pmDesc *
+metric_desc(pmID pmid)
+{
+ __pmHashNode *node;
+
+ if (pmid == PM_IN_NULL)
+ return NULL;
+ if ((node = __pmHashSearch(pmid, &descsctl)) == NULL)
+ return NULL;
+ return (pmDesc *)node->data;
}
int
diff --git a/src/pmlogconf/util.h b/src/pmlogconf/util.h
index 17d856a0d7..a11350d899 100644
--- a/src/pmlogconf/util.h
+++ b/src/pmlogconf/util.h
@@ -34,7 +34,9 @@ extern void fmt(const char *, char *, size_t, int, int, fmt_t, void *);
extern int values_hash(pmResult *);
extern pmValueSet *metric_values(pmID);
-extern int metric_type(pmID);
+
+extern int descs_hash(int, pmDesc *);
+extern pmDesc *metric_desc(pmID);
typedef int (*numeric_cmp_t)(double, double);
extern int number_equal(double, double);

View File

@ -0,0 +1,83 @@
commit 69c7d9bf5ac24bda51f8c876dc258bfe054b7cf8
Author: Sunil Mohan Adapa <sunil@medhas.org>
Date: Tue Feb 1 09:55:23 2022 -0800
pmlogger: zeroconf: Prioritize user configuration over zeroconf
In 2c17ba0cc16f58de511dff1e3122096d60c50bb0, zeroconf provided
defaults (/usr/share/pcp/zeroconf/pmlogger, which was actually
/etc/sysconf/pmlogger_zeroconf at the time of the change) were prioritized over
user configuration (/etc/sysconf/pmlogger). This lead to regression in clients
which edited the user configuration and expected the changes to be given
priority over zeroconf configuration. This was identified at least in
ansible-pcp[1].
Undo the changes in this commit so that the final priority is as follows:
User configuration (/etc/sysconfig/pmlogger)
(priority over)
Zeroconf defaults (/usr/share/pcp/zeroconf/pmlogger)
(priority over)
Code defaults (pmlogger.c)
Links:
1) https://github.com/performancecopilot/pcp/pull/1462#issuecomment-1022714960
Tests:
- Install pcp. Ensure pmlogger is running. Notice that there is no
PMLOGGER_INTERVAL set in the pmlogger daemon's environment.
- Install pcp-zeroconf. Restart pmlogger. Notice that PMLOGGER_INTERVAL
environment is set in the pmlogger daemon's environment. The value is 10.
- Edit /etc/sysconfig/pmlogger and set the value of PMLOGGER_INTERVAL to 15.
Restart pmlogger and notice that PMLOGGER_INTERVAL is set to 15 in pmlogger
daemon's environment.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Tested-by: Sunil Mohan Adapa <sunil@medhas.org>
diff --git a/src/pmlogger/pmlogger.defaults b/src/pmlogger/pmlogger.defaults
index 1765760b5..1e96cd6ff 100644
--- a/src/pmlogger/pmlogger.defaults
+++ b/src/pmlogger/pmlogger.defaults
@@ -1,7 +1,7 @@
# Environment variables for the primary pmlogger daemon. See also
# the pmlogger control file and pmlogconf(1) for additional details.
-# Settings defined in this file will be overridden by any settings
-# in the pmlogger zeroconf file (if present).
+# Settings defined in this file will override any settings in the
+# pmlogger zeroconf file (if present).
# Behaviour regarding listening on external-facing interfaces;
# unset PMLOGGER_LOCAL to allow connections from remote hosts.
diff --git a/src/pmlogger/pmlogger.zeroconf b/src/pmlogger/pmlogger.zeroconf
index 9defc6e3d..fe86dedcc 100644
--- a/src/pmlogger/pmlogger.zeroconf
+++ b/src/pmlogger/pmlogger.zeroconf
@@ -1,6 +1,6 @@
#
-# PMLOGGER environment variables defined in this file take precedence over
-# the same variables defined in the standard pmlogger config file.
+# PMLOGGER environment variables defined in the standard pmlogger config file
+# take precedence over the same variables defined in this file.
#
# The PMLOGGER_INTERVAL setting affects the default primary pmlogger recording
# frequency. This only affects the *default* interval setting when specified
diff --git a/src/pmlogger/pmlogger_check.sh b/src/pmlogger/pmlogger_check.sh
index 6cc2a8ed7..64750cb5f 100755
--- a/src/pmlogger/pmlogger_check.sh
+++ b/src/pmlogger/pmlogger_check.sh
@@ -983,8 +983,8 @@ END { print m }'`
then
if [ "X$primary" = Xy ]
then
- # pcp-zeroconf environment variables (if present) take precedence
- envs=`grep -h ^PMLOGGER "$PMLOGGERENVS" "$PMLOGGERZEROCONFENVS" 2>/dev/null`
+ # User configuration takes precedence over pcp-zeroconf
+ envs=`grep -h ^PMLOGGER "$PMLOGGERZEROCONFENVS" "$PMLOGGERENVS" 2>/dev/null`
args="-P $args"
iam=" primary"
# clean up port-map, just in case

View File

@ -0,0 +1,32 @@
commit 22ee6c04115e8a26f319be3549cd50ad81b5024a
Author: Nathan Scott <nathans@redhat.com>
Date: Fri Jan 21 13:08:05 2022 +1100
selinux: additional debugfs policy requirement for pmdakvm
Related to Red Hat BZ #2006430
diff --git a/qa/917.out.in b/qa/917.out.in
index 9339f7436..0723565d6 100644
--- a/qa/917.out.in
+++ b/qa/917.out.in
@@ -25,6 +25,7 @@ Checking policies.
! allow [pcp_pmcd_t] [container_var_run_t] : [sock_file] { getattr write };
allow [pcp_pmcd_t] [var_run_t] : [sock_file] { getattr write };
allow [pcp_pmcd_t] [debugfs_t] : [file] { append getattr ioctl open read write };
+ allow [pcp_pmcd_t] [debugfs_t] : [dir] { read };
! allow [pcp_pmcd_t] [pcp_pmie_exec_t] : [file] { execute execute_no_trans open read map };
allow [pcp_pmcd_t] [pcp_var_lib_t] : [fifo_file] { getattr read open unlink };
allow [pcp_pmcd_t] [proc_kcore_t] : [file] { getattr };
diff --git a/src/selinux/pcpupstream.te.in b/src/selinux/pcpupstream.te.in
index 4a51b804e..20a6705d5 100644
--- a/src/selinux/pcpupstream.te.in
+++ b/src/selinux/pcpupstream.te.in
@@ -144,6 +144,7 @@ allow pcp_pmcd_t var_run_t:sock_file { getattr write };
#type=AVC msg=audit(XXX.6): avc: denied { append getattr ioctl open read write } for pid=YYYY comm="pmdaX" name="/" dev="tracefs" ino=1 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:debugfs_t:s0 tclass=file permissive=0
allow pcp_pmcd_t debugfs_t:file { append getattr ioctl open read write };
+allow pcp_pmcd_t debugfs_t:dir read;
#type=AVC msg=audit(XXX.7): avc: denied { execute execute_no_trans open read } for pid=YYYY comm="pmdaX" name="/" dev="tracefs" ino=1 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:pcp_pmie_exec_t:s0 tclass=file permissive=0
#type=AVC msg=audit(XXX.68): avc: denied { map } for pid=28290 comm="pmie" path="/usr/bin/pmie" dev="dm-0" ino=5443 scontext=system_u:system_r:pcp_pmcd_t:s0 tcontext=system_u:object_r:pcp_pmie_exec_t:s0 tclass=file permissive=0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,92 +1,623 @@
commit b076a10d6901338707cb5e5d503fc25e2f36ba94
Author: Nathan Scott <nathans@redhat.com>
Date: Wed Dec 8 15:24:49 2021 +1100
Resolve inconsistencies in new 'farm' and other systemd units
This change most importantly introduces the Wants= line Mark
(and Jan earlier, indirectly) proposed to make pmlogger_farm
handling function as end-users will expect when manipulating
the pmlogger.service. Ditto for pmie.
There's also several cleanups of things that are inconsistent
and just plain wrong or missing, particularly in spec files.
This supercedes PR #1492 and PR #1489.
This resolves Red Hat BZ #2027753.
diff --git a/src/pmie/pmie.service.in b/src/pmie/pmie.service.in
index d234c8a5e5..bf4e64980a 100644
--- a/src/pmie/pmie.service.in
+++ b/src/pmie/pmie.service.in
@@ -4,7 +4,7 @@ Documentation=man:pmie(1)
After=network-online.target pmcd.service
Before=pmie_check.timer pmie_daily.timer
BindsTo=pmie_check.timer pmie_daily.timer
-Wants=pmcd.service
+Wants=pmcd.service pmie_farm.service
diff -Naurp pcp-5.3.5.orig/qa/032 pcp-5.3.5/qa/032
--- pcp-5.3.5.orig/qa/032 2021-11-01 13:02:26.000000000 +1100
+++ pcp-5.3.5/qa/032 2022-01-21 10:55:30.286602172 +1100
@@ -34,13 +34,6 @@ trap "_cleanup" 0 1 2 3 15
_stop_auto_restart pmcd
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_service pcp stop | _filter_pcp_stop
_wait_pmcd_end
_writable_primary_logger
@@ -48,7 +41,7 @@ _writable_primary_logger
_service pmcd start 2>&1 | _filter_pcp_start
_wait_for_pmcd
_service pmlogger start 2>&1 | _filter_pcp_start
-_wait_for_pmlogger -P $LOGGING_DIR/$LOCALHOST/pmlogger.log
+_wait_for_pmlogger
# real QA test starts here
_echo "expect this to be off"
diff -Naurp pcp-5.3.5.orig/qa/041 pcp-5.3.5/qa/041
--- pcp-5.3.5.orig/qa/041 2021-09-01 08:58:41.000000000 +1000
+++ pcp-5.3.5/qa/041 2022-01-21 10:55:30.286602172 +1100
@@ -40,12 +40,11 @@ _expect()
echo "" | tee -a $seq.full
}
+status=1
_needclean=true
TAG=000666000magic
-status=1
-[ -z "$PCP_PMLOGGERCONTROL_PATH" ] && \
- PCP_PMLOGGERCONTROL_PATH="$PCP_SYSCONF_DIR/pmlogger/control"
-
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
+rm -f $seq.full
trap "_cleanup" 0 1 2 3 15
_stop_auto_restart pmcd
@@ -68,15 +67,6 @@ _cleanup()
exit $status
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
-rm -f $seq.full
-
# real QA test starts here
# disable all pmloggers ...
diff -Naurp pcp-5.3.5.orig/qa/066 pcp-5.3.5/qa/066
--- pcp-5.3.5.orig/qa/066 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/066 2022-01-21 10:55:30.286602172 +1100
@@ -42,6 +42,7 @@ signal=$PCP_BINADM_DIR/pmsignal
log=$PCP_PMCDLOG_PATH
_needclean=true
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_filter_log()
{
@@ -80,13 +81,6 @@ interrupt()
exit
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
cleanup()
{
if [ $_needclean ]
diff -Naurp pcp-5.3.5.orig/qa/067 pcp-5.3.5/qa/067
--- pcp-5.3.5.orig/qa/067 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/067 2022-01-21 10:55:30.287602155 +1100
@@ -31,6 +31,7 @@ trap "rm -f $tmp.*; exit" 0 1 2 3 15
signal=$PCP_BINADM_DIR/pmsignal
log=$PCP_PMCDLOG_PATH
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_filter_log()
{
@@ -69,13 +70,6 @@ interrupt()
exit
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
cleanup()
{
_restore_config $PCP_PMCDCONF_PATH
diff -Naurp pcp-5.3.5.orig/qa/068 pcp-5.3.5/qa/068
--- pcp-5.3.5.orig/qa/068 2019-01-13 14:14:12.000000000 +1100
+++ pcp-5.3.5/qa/068 2022-01-21 10:55:30.287602155 +1100
@@ -19,22 +19,11 @@ echo "QA output created by $seq"
_needclean=true
LOCALHOST=`hostname`
-
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
trap "_cleanup" 0 1 2 3 15
-# don't need to regenerate config.default with pmlogconf
-#
-export PMLOGGER_CHECK_SKIP_LOGCONF=yes
-
_stop_auto_restart pmcd
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_cleanup()
{
echo >>$seq.full
diff -Naurp pcp-5.3.5.orig/qa/069 pcp-5.3.5/qa/069
--- pcp-5.3.5.orig/qa/069 2021-11-08 09:45:56.000000000 +1100
+++ pcp-5.3.5/qa/069 2022-01-21 10:55:30.287602155 +1100
@@ -45,6 +45,7 @@ nconfig=$tmp.pmcd.conf.new
log=$PCP_PMCDLOG_PATH
LOCALHOST=`hostname`
LOCALHOST_FULL=`pmhostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_needclean=true
rm -f $seq.full
@@ -104,13 +105,6 @@ skip > 0 { skip--; next }
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
cleanup()
{
if $_needclean
diff -Naurp pcp-5.3.5.orig/qa/1055 pcp-5.3.5/qa/1055
--- pcp-5.3.5.orig/qa/1055 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/1055 2022-01-21 10:55:30.287602155 +1100
@@ -17,6 +17,7 @@ signal=$PCP_BINADM_DIR/pmsignal
status=1
done_clean=false
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_cleanup()
{
@@ -66,13 +67,7 @@ $sudo cp $tmp.tmp $PCP_PMCDCONF_PATH
_writable_primary_logger
_service pcp restart 2>&1 | _filter_pcp_start
_wait_for_pmcd
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-_wait_for_pmlogger -P $LOGGING_DIR/$LOCALHOST/pmlogger.log
+_wait_for_pmlogger
# Reset pmlogger
echo "log sample.dynamic.meta.metric"
diff -Naurp pcp-5.3.5.orig/qa/172 pcp-5.3.5/qa/172
--- pcp-5.3.5.orig/qa/172 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/172 2022-01-21 10:55:30.287602155 +1100
@@ -39,6 +39,7 @@ else
esac
fi
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
LOCALHOST=`hostname`
_needclean=true
status=0
@@ -48,13 +49,6 @@ _interrupt()
status=1
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_cleanup()
{
if $_needclean
diff -Naurp pcp-5.3.5.orig/qa/192 pcp-5.3.5/qa/192
--- pcp-5.3.5.orig/qa/192 2019-01-13 14:14:12.000000000 +1100
+++ pcp-5.3.5/qa/192 2022-01-21 10:55:30.287602155 +1100
@@ -13,6 +13,7 @@ echo "QA output created by $seq"
. ./common.filter
. ./common.check
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
LOCALHOST=`hostname`
_needclean=true
status=0
@@ -22,13 +23,6 @@ _interrupt()
status=1
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_cleanup()
{
if $_needclean
diff -Naurp pcp-5.3.5.orig/qa/220 pcp-5.3.5/qa/220
--- pcp-5.3.5.orig/qa/220 2021-07-13 09:34:38.000000000 +1000
+++ pcp-5.3.5/qa/220 2022-01-21 10:55:30.287602155 +1100
@@ -18,13 +18,7 @@ which netstat >/dev/null 2>&1 || _notrun
status=0
clean=false
LOCALHOST=`hostname`
-
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_cleanup()
{
diff -Naurp pcp-5.3.5.orig/qa/258 pcp-5.3.5/qa/258
--- pcp-5.3.5.orig/qa/258 2019-01-30 14:22:38.000000000 +1100
+++ pcp-5.3.5/qa/258 2022-01-21 10:55:30.287602155 +1100
@@ -19,6 +19,7 @@ echo "QA output created by $seq"
signal=$PCP_BINADM_DIR/pmsignal
status=1
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_needclean=true
_interrupt()
@@ -26,13 +27,6 @@ _interrupt()
status=1
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_cleanup()
{
cd $here
diff -Naurp pcp-5.3.5.orig/qa/279 pcp-5.3.5/qa/279
--- pcp-5.3.5.orig/qa/279 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/279 2022-01-21 10:55:30.287602155 +1100
@@ -17,6 +17,7 @@ echo "QA output created by $seq"
status=1 # failure is the default!
killer=`pwd`/src/killparent
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_needclean=true
rm -f $seq.full
@@ -76,13 +77,6 @@ _filter_pmcd()
# end
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_save_config $PCP_PMCDCONF_PATH
_disable_loggers
pmafm $LOGGING_DIR/$LOCALHOST/Latest remove >$tmp.cmd 2>&1 \
diff -Naurp pcp-5.3.5.orig/qa/280 pcp-5.3.5/qa/280
--- pcp-5.3.5.orig/qa/280 2021-08-16 14:12:25.000000000 +1000
+++ pcp-5.3.5/qa/280 2022-01-21 10:55:30.287602155 +1100
@@ -13,16 +13,6 @@ echo "QA output created by $seq"
. ./common.filter
. ./common.check
-if [ -d "$PCP_ARCHIVE_DIR" ]
-then
- LOGGING_DIR=$PCP_ARCHIVE_DIR
-elif [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_filter()
{
[ -z "$PCP_PMLOGGERCONTROL_PATH" ] && \
@@ -52,6 +42,7 @@ _filter()
status=1 # failure is the default!
signal=$PCP_BINADM_DIR/pmsignal
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
trap "_cleanup; $sudo rm -f $tmp.* $LOGGING_DIR/$LOCALHOST/lock; exit \$status" 0 1 2 3 15
_stop_auto_restart pmcd
diff -Naurp pcp-5.3.5.orig/qa/282 pcp-5.3.5/qa/282
--- pcp-5.3.5.orig/qa/282 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/282 2022-01-21 10:55:30.287602155 +1100
@@ -32,7 +32,7 @@ _needclean=true
sleepy=false
LOCALHOST=`hostname`
-LOGGING_DIR=$PCP_LOG_DIR/pmlogger
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
CHECK=`which pmlogger_check`
[ -z "$CHECK" -o ! -x "$CHECK" ] && \
_notrun "Cannot find an executable pmlogger_check: \"$CHECK\""
diff -Naurp pcp-5.3.5.orig/qa/336 pcp-5.3.5/qa/336
--- pcp-5.3.5.orig/qa/336 2018-10-23 07:37:45.000000000 +1100
+++ pcp-5.3.5/qa/336 2022-01-21 10:55:30.288602138 +1100
@@ -19,6 +19,7 @@ echo "QA output created by $seq"
signal=$PCP_BINADM_DIR/pmsignal
status=1 # failure is the default!
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_needclean=true
if [ -n "$PCP_TRACE_HOST" ]
@@ -31,13 +32,6 @@ _interrupt()
status=1
}
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-
_cleanup()
{
cd $here
diff -Naurp pcp-5.3.5.orig/qa/854 pcp-5.3.5/qa/854
--- pcp-5.3.5.orig/qa/854 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/854 2022-01-21 10:55:30.288602138 +1100
@@ -17,6 +17,7 @@ signal=$PCP_BINADM_DIR/pmsignal
status=1
done_clean=false
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_cleanup()
{
@@ -59,20 +60,14 @@ cat <<End-of-File >$tmp.tmp
# Installed by PCP QA test $seq on `date`
pmcd 2 dso pmcd_init $PMDA_PMCD_PATH
sample 29 pipe binary $PCP_PMDAS_DIR/sample/pmdasample -d 29
-simple 253 pipe binary /var/lib/pcp/pmdas/simple/pmdasimple -d 253
+simple 253 pipe binary $PCP_PMDAS_DIR/simple/pmdasimple -d 253
End-of-File
$sudo cp $tmp.tmp $PCP_PMCDCONF_PATH
_writable_primary_logger
_service pcp restart 2>&1 | _filter_pcp_start
_wait_for_pmcd
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-_wait_for_pmlogger -P $LOGGING_DIR/$LOCALHOST/pmlogger.log
+_wait_for_pmlogger
# Reset pmlogger
echo "log sample.dynamic.meta.metric"
diff -Naurp pcp-5.3.5.orig/qa/856 pcp-5.3.5/qa/856
--- pcp-5.3.5.orig/qa/856 2019-01-13 14:14:12.000000000 +1100
+++ pcp-5.3.5/qa/856 2022-01-21 10:55:30.288602138 +1100
@@ -17,6 +17,7 @@ signal=$PCP_BINADM_DIR/pmsignal
status=1
done_clean=false
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_cleanup()
{
@@ -69,13 +70,7 @@ $sudo cp $tmp.tmp $PCP_PMCDCONF_PATH
_writable_primary_logger
_service pcp restart 2>&1 | _filter_pcp_start
_wait_for_pmcd
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-_wait_for_pmlogger -P $LOGGING_DIR/$LOCALHOST/pmlogger.log
+_wait_for_pmlogger
# Reset pmlogger
echo "log sample.dynamic.meta.metric"
diff -Naurp pcp-5.3.5.orig/qa/882 pcp-5.3.5/qa/882
--- pcp-5.3.5.orig/qa/882 2019-01-13 14:14:12.000000000 +1100
+++ pcp-5.3.5/qa/882 2022-01-21 10:55:30.288602138 +1100
@@ -17,6 +17,7 @@ signal=$PCP_BINADM_DIR/pmsignal
status=1
done_clean=false
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_cleanup()
{
@@ -69,13 +70,7 @@ $sudo cp $tmp.tmp $PCP_PMCDCONF_PATH
_writable_primary_logger
_service pcp restart 2>&1 | _filter_pcp_start
_wait_for_pmcd
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-_wait_for_pmlogger -P $LOGGING_DIR/$LOCALHOST/pmlogger.log
+_wait_for_pmlogger
# Reset pmlogger
echo "log sample.dynamic.meta.metric"
diff -Naurp pcp-5.3.5.orig/qa/932 pcp-5.3.5/qa/932
--- pcp-5.3.5.orig/qa/932 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/qa/932 2022-01-21 10:55:30.288602138 +1100
@@ -17,6 +17,7 @@ signal=$PCP_BINADM_DIR/pmsignal
status=1
done_clean=false
LOCALHOST=`hostname`
+LOGGING_DIR="$PCP_ARCHIVE_DIR"
_cleanup()
{
@@ -67,13 +68,7 @@ $sudo cp $tmp.tmp $PCP_PMCDCONF_PATH
_writable_primary_logger
_service pcp restart 2>&1 | _filter_pcp_start
_wait_for_pmcd
-if [ -d $PCP_LOG_DIR/pmlogger ]
-then
- LOGGING_DIR=$PCP_LOG_DIR/pmlogger
-else
- LOGGING_DIR=$PCP_LOG_DIR
-fi
-_wait_for_pmlogger -P $LOGGING_DIR/$LOCALHOST/pmlogger.log
+_wait_for_pmlogger
# Reset pmlogger
echo "log sample.dynamic.meta.metric"
diff -Naurp pcp-5.3.5.orig/qa/common.check pcp-5.3.5/qa/common.check
--- pcp-5.3.5.orig/qa/common.check 2021-11-05 09:54:05.000000000 +1100
+++ pcp-5.3.5/qa/common.check 2022-01-21 10:55:30.288602138 +1100
@@ -262,7 +262,7 @@ _service()
# good reason for this)
# ditto for pmlogger_daily and pmlogger_daily-poll
#
- for svc in pmlogger_check pmlogger_daily pmlogger_daily-poll
+ for svc in pmlogger_check pmlogger_daily pmlogger_farm_check pmlogger_daily-poll
do
if systemctl show --property=ActiveState $svc.timer 2>&1 \
| grep '=active$' >/dev/null
@@ -1940,9 +1940,11 @@ _remove_job_scheduler()
$rc_sudo rm -f $rc_cron_backup $rc_systemd_state
if systemctl cat pmie_daily.timer >/dev/null 2>&1; then
- for i in pmie.service pmie_daily.timer pmie_check.timer pmlogger_daily.timer \
+ for i in pmie.service pmie_daily.timer \
+ pmie_check.timer pmie_farm_check.timer \
pmlogger_daily_report.timer pmlogger_daily_report-poll.timer \
- pmlogger_daily-poll.timer pmlogger_check.timer ; do
+ pmlogger_daily-poll.timer pmlogger_daily.timer \
+ pmlogger_check.timer pmlogger_farm_check.timer ; do
$rc_sudo systemctl is-active "$i" > /dev/null || continue
$rc_sudo systemctl stop $i >/dev/null
echo "$i" >> $rc_systemd_state
diff -Naurp pcp-5.3.5.orig/src/pmie/GNUmakefile pcp-5.3.5/src/pmie/GNUmakefile
--- pcp-5.3.5.orig/src/pmie/GNUmakefile 2021-11-09 10:50:58.000000000 +1100
+++ pcp-5.3.5/src/pmie/GNUmakefile 2022-01-21 10:55:54.918186303 +1100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013-2015,2020-2021 Red Hat.
+# Copyright (c) 2013-2015,2020-2022 Red Hat.
# Copyright (c) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
@@ -84,7 +84,6 @@ pmie.service : pmie.service.in
pmie_farm.service : pmie_farm.service.in
$(SED) <$< >$@ \
- -e 's;@CRONTAB_PATH@;'$(CRONTAB_PATH)';' \
-e 's;@PCP_SYSCONFIG_DIR@;'$(PCP_SYSCONFIG_DIR)';' \
-e 's;@PCP_BINADM_DIR@;'$(PCP_BINADM_DIR)';' \
-e 's;@PCP_VAR_DIR@;'$(PCP_VAR_DIR)';' \
@@ -95,7 +94,10 @@ pmie_farm.service : pmie_farm.service.in
pmie_farm_check.service : pmie_farm_check.service.in
$(SED) <$< >$@ \
+ -e 's;@CRONTAB_PATH@;'$(CRONTAB_PATH)';' \
-e 's;@PCP_BIN_DIR@;'$(PCP_BIN_DIR)';' \
+ -e 's;@PCP_VAR_DIR@;'$(PCP_VAR_DIR)';' \
+ -e 's;@SD_SERVICE_TYPE@;'$(SD_SERVICE_TYPE)';' \
# END
pmie_check.service : pmie_check.service.in
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_check.service.in pcp-5.3.5/src/pmie/pmie_check.service.in
--- pcp-5.3.5.orig/src/pmie/pmie_check.service.in 2021-11-04 08:26:15.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_check.service.in 2022-01-21 10:55:30.288602138 +1100
@@ -2,7 +2,6 @@
Description=Check PMIE instances are running
Documentation=man:pmie_check(1)
ConditionPathExists=!@CRONTAB_PATH@
-PartOf=pmie.service
[Service]
Type=notify
diff --git a/src/pmie/pmie_farm.service.in b/src/pmie/pmie_farm.service.in
index 6679e48ba1..5459adb310 100644
--- a/src/pmie/pmie_farm.service.in
+++ b/src/pmie/pmie_farm.service.in
@@ -22,6 +22,3 @@ User=@PCP_USER@
Type=@SD_SERVICE_TYPE@
@@ -15,6 +14,3 @@ ExecStart=@PCP_BINADM_DIR@/pmie_check $P
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
-
-[Install]
-RequiredBy=pmie.service
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_check.timer pcp-5.3.5/src/pmie/pmie_check.timer
--- pcp-5.3.5.orig/src/pmie/pmie_check.timer 2021-02-17 15:27:41.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_check.timer 2022-01-21 10:55:30.288602138 +1100
@@ -1,6 +1,5 @@
[Unit]
Description=Half-hourly check of PMIE instances
-PartOf=pmie.service
[Timer]
# if enabled, runs 1m after boot and every half hour
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_daily.service.in pcp-5.3.5/src/pmie/pmie_daily.service.in
--- pcp-5.3.5.orig/src/pmie/pmie_daily.service.in 2021-10-07 14:28:56.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_daily.service.in 2022-01-21 10:55:30.288602138 +1100
@@ -6,6 +6,7 @@ ConditionPathExists=!@CRONTAB_PATH@
[Service]
Type=@SD_SERVICE_TYPE@
Restart=no
+TimeoutStartSec=1h
Environment="PMIE_DAILY_PARAMS=-X xz -x 3"
EnvironmentFile=-@PCP_SYSCONFIG_DIR@/pmie_timers
ExecStart=@PCP_BINADM_DIR@/pmie_daily $PMIE_DAILY_PARAMS
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_daily.timer pcp-5.3.5/src/pmie/pmie_daily.timer
--- pcp-5.3.5.orig/src/pmie/pmie_daily.timer 2019-02-20 18:03:00.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_daily.timer 2022-01-21 10:55:30.288602138 +1100
@@ -2,6 +2,7 @@
Description=Daily processing of PMIE logs
[Timer]
+Persistent=true
OnCalendar=*-*-* 00:08:00
[Install]
WantedBy=multi-user.target
-
-# This dependency will be removed in PCPv6.
-WantedBy=pmie.service
diff --git a/src/pmlogger/pmlogger.service.in b/src/pmlogger/pmlogger.service.in
index de0df29db1..59299ac15d 100644
--- a/src/pmlogger/pmlogger.service.in
+++ b/src/pmlogger/pmlogger.service.in
@@ -4,7 +4,7 @@ Documentation=man:pmlogger(1)
After=network-online.target pmcd.service
Before=pmlogger_check.timer pmlogger_daily.timer
BindsTo=pmlogger_check.timer pmlogger_daily.timer
-Wants=pmcd.service
+Wants=pmcd.service pmlogger_farm.service
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_farm_check.service.in pcp-5.3.5/src/pmie/pmie_farm_check.service.in
--- pcp-5.3.5.orig/src/pmie/pmie_farm_check.service.in 2021-11-09 10:50:58.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_farm_check.service.in 2022-01-21 10:55:54.918186303 +1100
@@ -1,19 +1,15 @@
[Unit]
-Description=Check and migrate non-primary pmie instances to pmie_farm
-Documentation=man:pmie_check(1)
-# TODO non-systemd ConditionPathExists=!/etc/cron.d/pcp-pmie
+Description=Check and migrate non-primary pmie farm instances
+Documentation=man:pmiectl(1)
+ConditionPathExists=!@CRONTAB_PATH@
[Service]
Type=notify
diff --git a/src/pmlogger/pmlogger_farm.service.in b/src/pmlogger/pmlogger_farm.service.in
index fe753afdf6..3bfa2e7098 100644
--- a/src/pmlogger/pmlogger_farm.service.in
+++ b/src/pmlogger/pmlogger_farm.service.in
@@ -22,6 +22,3 @@ User=@PCP_USER@
[Install]
WantedBy=multi-user.target
-Type=exec
+Type=@SD_SERVICE_TYPE@
Restart=no
TimeoutStartSec=4h
TimeoutStopSec=120
ExecStart=@PCP_BIN_DIR@/pmiectl -m check
-WorkingDirectory=/var/lib/pcp
-
-# This dependency will be removed in PCPv6.
-WantedBy=pmlogger.service
commit cc2dddfb7a04d98f97bdf759f057bae2727260ff
Author: Nathan Scott <nathans@redhat.com>
Date: Thu Dec 9 10:41:22 2021 +1100
Resolve inconsistencies in new 'farm' systemd timers
When the farm systemd timers were introduced the check interval
was drastically reduced from half hourly to 5 minutely. There
wasn't any discussion about rationales for this and its now not
consistent (does not dovetail at all) with the primary pmlogger
and pmie service. If startup takes a long time (large farms or
slow networks) these will likely overlap constantly, and timing
should be such that we work with the primary services in mind.
Reset to half hourly for these checks, and lets revisit this in
the new year when the other systemd changes are being proposed.
Related to https://github.com/performancecopilot/pcp/pull/1495
diff --git a/src/pmie/pmie_farm_check.timer b/src/pmie/pmie_farm_check.timer
index ee7aa21242..97dc061af2 100644
--- a/src/pmie/pmie_farm_check.timer
+++ b/src/pmie/pmie_farm_check.timer
+WorkingDirectory=@PCP_VAR_DIR@
# root so pmiectl can migrate pmie processes to the pmie_farm service
Group=root
User=root
-
-[Install]
-RequiredBy=pmie_farm.service
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_farm_check.timer pcp-5.3.5/src/pmie/pmie_farm_check.timer
--- pcp-5.3.5.orig/src/pmie/pmie_farm_check.timer 2021-11-04 08:26:15.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_farm_check.timer 2022-01-21 10:49:07.985980678 +1100
@@ -1,10 +1,11 @@
[Unit]
-Description=5 minute check of pmie farm instances
@ -102,10 +633,147 @@ index ee7aa21242..97dc061af2 100644
[Install]
WantedBy=timers.target
diff --git a/src/pmlogger/pmlogger_farm_check.timer b/src/pmlogger/pmlogger_farm_check.timer
index 094fb4505d..f234ef7839 100644
--- a/src/pmlogger/pmlogger_farm_check.timer
+++ b/src/pmlogger/pmlogger_farm_check.timer
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_farm.service.in pcp-5.3.5/src/pmie/pmie_farm.service.in
--- pcp-5.3.5.orig/src/pmie/pmie_farm.service.in 2021-11-04 08:26:15.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_farm.service.in 2022-01-21 10:49:07.986980661 +1100
@@ -1,9 +1,9 @@
[Unit]
Description=pmie farm service
-Documentation=man:pmie(1)
-After=network-online.target pmcd.service
-Before=pmie_check.timer pmie_daily.timer
-BindsTo=pmie_farm_check.timer pmie_check.timer pmie_daily.timer
+Documentation=man:pmie_check(1)
+Before=pmie_farm_check.timer
+BindsTo=pmie_farm_check.timer
+PartOf=pmie.service
[Service]
Type=@SD_SERVICE_TYPE@
@@ -15,13 +15,9 @@ TimeoutStopSec=120
Environment="PMIE_CHECK_PARAMS=--skip-primary"
EnvironmentFile=-@PCP_SYSCONFIG_DIR@/pmie_timers
ExecStart=@PCP_BINADM_DIR@/pmie_farm $PMIE_CHECK_PARAMS
-
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
[Install]
-WantedBy=multi-user.target
-
-# This dependency will be removed in PCPv6.
-WantedBy=pmie.service
+RequiredBy=pmie.service
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie_farm.sh pcp-5.3.5/src/pmie/pmie_farm.sh
--- pcp-5.3.5.orig/src/pmie/pmie_farm.sh 2021-11-05 17:02:47.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie_farm.sh 2022-01-21 10:49:07.986980661 +1100
@@ -12,8 +12,8 @@
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
-# Administrative script to start the pmlogger_farm service.
-# All arguments to pmlogger_check are passed from pmlogger_farm.service.
+# Administrative script to start the pmie_farm service.
+# All arguments to pmie_check are passed from pmie_farm.service.
#
. $PCP_DIR/etc/pcp.env
diff -Naurp pcp-5.3.5.orig/src/pmie/pmie.service.in pcp-5.3.5/src/pmie/pmie.service.in
--- pcp-5.3.5.orig/src/pmie/pmie.service.in 2021-02-22 11:32:05.000000000 +1100
+++ pcp-5.3.5/src/pmie/pmie.service.in 2022-01-21 10:49:07.986980661 +1100
@@ -2,8 +2,8 @@
Description=Performance Metrics Inference Engine
Documentation=man:pmie(1)
After=network-online.target pmcd.service
-Before=pmie_check.timer pmie_daily.timer
-BindsTo=pmie_check.timer pmie_daily.timer
+Before=pmie_farm.service pmie_check.timer pmie_daily.timer
+BindsTo=pmie_farm.service pmie_check.timer pmie_daily.timer
Wants=pmcd.service
[Service]
diff -Naurp pcp-5.3.5.orig/src/pmlogger/GNUmakefile pcp-5.3.5/src/pmlogger/GNUmakefile
--- pcp-5.3.5.orig/src/pmlogger/GNUmakefile 2021-11-09 09:08:40.000000000 +1100
+++ pcp-5.3.5/src/pmlogger/GNUmakefile 2022-01-21 10:55:54.918186303 +1100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013-2021 Red Hat.
+# Copyright (c) 2013-2022 Red Hat.
# Copyright (c) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
@@ -99,7 +99,6 @@ pmlogger.service : pmlogger.service.in
pmlogger_farm.service : pmlogger_farm.service.in
$(SED) <$< >$@ \
- -e 's;@CRONTAB_PATH@;'$(CRONTAB_PATH)';' \
-e 's;@PCP_SYSCONFIG_DIR@;'$(PCP_SYSCONFIG_DIR)';' \
-e 's;@PCP_BINADM_DIR@;'$(PCP_BINADM_DIR)';' \
-e 's;@PCP_VAR_DIR@;'$(PCP_VAR_DIR)';' \
@@ -110,7 +109,10 @@ pmlogger_farm.service : pmlogger_farm.se
pmlogger_farm_check.service : pmlogger_farm_check.service.in
$(SED) <$< >$@ \
+ -e 's;@CRONTAB_PATH@;'$(CRONTAB_PATH)';' \
-e 's;@PCP_BIN_DIR@;'$(PCP_BIN_DIR)';' \
+ -e 's;@PCP_VAR_DIR@;'$(PCP_VAR_DIR)';' \
+ -e 's;@SD_SERVICE_TYPE@;'$(SD_SERVICE_TYPE)';' \
# END
pmlogger_daily.service : pmlogger_daily.service.in
diff -Naurp pcp-5.3.5.orig/src/pmlogger/pmlogger_check.service.in pcp-5.3.5/src/pmlogger/pmlogger_check.service.in
--- pcp-5.3.5.orig/src/pmlogger/pmlogger_check.service.in 2021-11-04 08:26:15.000000000 +1100
+++ pcp-5.3.5/src/pmlogger/pmlogger_check.service.in 2022-01-21 10:55:30.289602121 +1100
@@ -15,6 +15,3 @@ ExecStart=@PCP_BINADM_DIR@/pmlogger_chec
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
-
-[Install]
-RequiredBy=pmlogger.service
diff -Naurp pcp-5.3.5.orig/src/pmlogger/pmlogger_daily_report.service.in pcp-5.3.5/src/pmlogger/pmlogger_daily_report.service.in
--- pcp-5.3.5.orig/src/pmlogger/pmlogger_daily_report.service.in 2021-10-07 14:28:56.000000000 +1100
+++ pcp-5.3.5/src/pmlogger/pmlogger_daily_report.service.in 2022-01-21 10:55:30.289602121 +1100
@@ -13,6 +13,3 @@ ExecStart=@PCP_BINADM_DIR@/pmlogger_dail
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
-
-[Install]
-WantedBy=pmlogger.service
diff -Naurp pcp-5.3.5.orig/src/pmlogger/pmlogger_farm_check.service.in pcp-5.3.5/src/pmlogger/pmlogger_farm_check.service.in
--- pcp-5.3.5.orig/src/pmlogger/pmlogger_farm_check.service.in 2021-11-09 09:08:40.000000000 +1100
+++ pcp-5.3.5/src/pmlogger/pmlogger_farm_check.service.in 2022-01-21 10:55:54.918186303 +1100
@@ -1,19 +1,15 @@
[Unit]
-Description=Check and migrate non-primary pmlogger instances to pmlogger_farm
-Documentation=man:pmlogger_check(1)
-# TODO non-systemd ConditionPathExists=!/etc/cron.d/pcp-pmlogger
+Description=Check and migrate non-primary pmlogger farm instances
+Documentation=man:pmlogctl(1)
+ConditionPathExists=!@CRONTAB_PATH@
[Service]
-Type=exec
+Type=@SD_SERVICE_TYPE@
Restart=no
TimeoutStartSec=4h
TimeoutStopSec=120
ExecStart=@PCP_BIN_DIR@/pmlogctl -m check
-WorkingDirectory=/var/lib/pcp
-
-# root so pmlogctl can migrate pmloggers to the pmlogger_farm service
+WorkingDirectory=@PCP_VAR_DIR@
+# root so pmlogctl can migrate pmlogger processes to the pmlogger_farm service
Group=root
User=root
-
-[Install]
-RequiredBy=pmlogger_farm.service
diff -Naurp pcp-5.3.5.orig/src/pmlogger/pmlogger_farm_check.timer pcp-5.3.5/src/pmlogger/pmlogger_farm_check.timer
--- pcp-5.3.5.orig/src/pmlogger/pmlogger_farm_check.timer 2021-11-04 08:26:15.000000000 +1100
+++ pcp-5.3.5/src/pmlogger/pmlogger_farm_check.timer 2022-01-21 10:49:07.986980661 +1100
@@ -1,10 +1,11 @@
[Unit]
-Description=5 minute check of pmlogger farm instances
@ -121,3 +789,53 @@ index 094fb4505d..f234ef7839 100644
[Install]
WantedBy=timers.target
diff -Naurp pcp-5.3.5.orig/src/pmlogger/pmlogger_farm.service.in pcp-5.3.5/src/pmlogger/pmlogger_farm.service.in
--- pcp-5.3.5.orig/src/pmlogger/pmlogger_farm.service.in 2021-11-04 08:26:15.000000000 +1100
+++ pcp-5.3.5/src/pmlogger/pmlogger_farm.service.in 2022-01-21 10:55:30.289602121 +1100
@@ -1,9 +1,9 @@
[Unit]
Description=pmlogger farm service
-Documentation=man:pmlogger(1)
-After=network-online.target pmcd.service
-Before=pmlogger_check.timer pmlogger_daily.timer
-BindsTo=pmlogger_farm_check.timer pmlogger_check.timer pmlogger_daily.timer
+Documentation=man:pmlogger_check(1)
+Before=pmlogger_farm_check.timer
+BindsTo=pmlogger_farm_check.timer
+PartOf=pmlogger.service
[Service]
Type=@SD_SERVICE_TYPE@
@@ -12,16 +12,12 @@ Restart=always
TimeoutStartSec=4h
TimeoutStopSec=120
# the pmlogger_farm service manages all pmloggers except the primary
-Environment="PMLOGGER_CHECK_PARAMS=--skip-primary"
+Environment="PMLOGGER_CHECK_PARAMS=--skip-primary --quick"
EnvironmentFile=-@PCP_SYSCONFIG_DIR@/pmlogger_timers
ExecStart=@PCP_BINADM_DIR@/pmlogger_farm $PMLOGGER_CHECK_PARAMS
-
WorkingDirectory=@PCP_VAR_DIR@
Group=@PCP_GROUP@
User=@PCP_USER@
[Install]
-WantedBy=multi-user.target
-
-# This dependency will be removed in PCPv6.
-WantedBy=pmlogger.service
+RequiredBy=pmlogger.service
diff -Naurp pcp-5.3.5.orig/src/pmlogger/pmlogger.service.in pcp-5.3.5/src/pmlogger/pmlogger.service.in
--- pcp-5.3.5.orig/src/pmlogger/pmlogger.service.in 2021-11-04 08:26:15.000000000 +1100
+++ pcp-5.3.5/src/pmlogger/pmlogger.service.in 2022-01-21 10:49:07.986980661 +1100
@@ -2,8 +2,8 @@
Description=Performance Metrics Archive Logger
Documentation=man:pmlogger(1)
After=network-online.target pmcd.service
-Before=pmlogger_check.timer pmlogger_daily.timer
-BindsTo=pmlogger_check.timer pmlogger_daily.timer
+Before=pmlogger_farm.service pmlogger_check.timer pmlogger_daily.timer
+BindsTo=pmlogger_farm.service pmlogger_check.timer pmlogger_daily.timer
Wants=pmcd.service
[Service]

View File

@ -1,6 +1,6 @@
Name: pcp
Version: 5.3.5
Release: 3%{?dist}
Release: 8%{?dist}
Summary: System-level performance monitoring and performance management
License: GPLv2+ and LGPLv2+ and CC-BY
URL: https://pcp.io
@ -13,6 +13,11 @@ Patch1: redhat-bugzilla-2029301.patch
Patch2: redhat-bugzilla-2030121.patch
Patch3: redhat-bugzilla-2027753.patch
Patch4: redhat-bugzilla-2030140.patch
Patch5: redhat-bugzilla-2024982.patch
Patch6: redhat-bugzilla-2024980.patch
Patch7: redhat-bugzilla-1973833.patch
Patch8: redhat-bugzilla-2006430.patch
Patch9: redhat-bugzilla-1991764.patch
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7
%global __python2 python2
@ -96,9 +101,9 @@ Patch4: redhat-bugzilla-2030140.patch
%global disable_bcc 1
%endif
# support for pmdabpf, check bpf.spec for supported architectures of bpf
# support for pmdabpf, check bcc.spec for supported architectures of libbpf-tools
%if 0%{?fedora} >= 33 || 0%{?rhel} > 8
%ifarch x86_64 %{power64} aarch64 s390x
%ifarch x86_64 ppc64 ppc64le aarch64
%global disable_bpf 0
%else
%global disable_bpf 1
@ -2286,6 +2291,11 @@ updated policy package.
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%build
# the buildsubdir macro gets defined in %setup and is apparently only available in the next step (i.e. the %build step)
@ -2688,10 +2698,8 @@ exit 0
chown -R pcpqa:pcpqa %{_testsdir} 2>/dev/null
%if 0%{?rhel}
%if !%{disable_systemd}
systemctl restart pmcd >/dev/null 2>&1
systemctl restart pmlogger >/dev/null 2>&1
systemctl enable pmcd >/dev/null 2>&1
systemctl enable pmlogger >/dev/null 2>&1
systemctl restart pmcd pmlogger >/dev/null 2>&1
systemctl enable pmcd pmlogger >/dev/null 2>&1
%else
/sbin/chkconfig --add pmcd >/dev/null 2>&1
/sbin/chkconfig --add pmlogger >/dev/null 2>&1
@ -2954,8 +2962,7 @@ exit 0
%preun zeroconf
if [ "$1" -eq 0 ]
then
%systemd_preun pmlogger_daily_report.timer
%systemd_preun pmlogger_daily_report.service
%systemd_preun pmlogger_daily_report.timer pmlogger_daily_report.service
fi
%endif
@ -2964,41 +2971,19 @@ if [ "$1" -eq 0 ]
then
# stop daemons before erasing the package
%if !%{disable_systemd}
%systemd_preun pmlogger.service
%systemd_preun pmlogger_farm.service
%systemd_preun pmie.service
%systemd_preun pmie_farm.service
%systemd_preun pmproxy.service
%systemd_preun pmfind.service
%systemd_preun pmcd.service
%systemd_preun pmlogger_daily.timer
%systemd_preun pmlogger_check.timer
%systemd_preun pmlogger_farm_check.timer
%systemd_preun pmie_daily.timer
%systemd_preun pmie_check.timer
%systemd_preun pmie_farm_check.timer
%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
systemctl stop pmlogger.service >/dev/null 2>&1
systemctl stop pmlogger_farm.service >/dev/null 2>&1
systemctl stop pmie.service >/dev/null 2>&1
systemctl stop pmie_farm.service >/dev/null 2>&1
systemctl stop pmproxy.service >/dev/null 2>&1
systemctl stop pmfind.service >/dev/null 2>&1
systemctl stop pmcd.service >/dev/null 2>&1
systemctl stop pmlogger.service pmie.service pmproxy.service pmfind.service pmcd.service >/dev/null 2>&1
%else
/sbin/service pmlogger stop >/dev/null 2>&1
/sbin/service pmlogger_farm stop >/dev/null 2>&1
/sbin/service pmie stop >/dev/null 2>&1
/sbin/service pmie_farm stop >/dev/null 2>&1
/sbin/service pmproxy stop >/dev/null 2>&1
/sbin/service pmcd stop >/dev/null 2>&1
/sbin/chkconfig --del pcp >/dev/null 2>&1
/sbin/chkconfig --del pmcd >/dev/null 2>&1
/sbin/chkconfig --del pmlogger >/dev/null 2>&1
/sbin/chkconfig --del pmlogger_farm >/dev/null 2>&1
/sbin/chkconfig --del pmie >/dev/null 2>&1
/sbin/chkconfig --del pmie_farm >/dev/null 2>&1
/sbin/chkconfig --del pmproxy >/dev/null 2>&1
%endif
# cleanup namespace state/flag, may still exist
@ -3021,12 +3006,8 @@ done
pmieconf -c enable dmthin
%if 0%{?rhel}
%if !%{disable_systemd}
systemctl restart pmcd >/dev/null 2>&1
systemctl restart pmlogger >/dev/null 2>&1
systemctl restart pmie >/dev/null 2>&1
systemctl enable pmcd >/dev/null 2>&1
systemctl enable pmlogger >/dev/null 2>&1
systemctl enable pmie >/dev/null 2>&1
systemctl restart pmcd pmlogger pmie >/dev/null 2>&1
systemctl enable pmcd pmlogger pmie >/dev/null 2>&1
%else
/sbin/chkconfig --add pmcd >/dev/null 2>&1
/sbin/chkconfig --add pmlogger >/dev/null 2>&1
@ -3071,12 +3052,8 @@ PCP_LOG_DIR=%{_logsdir}
/sbin/service pmcd condrestart
/sbin/chkconfig --add pmlogger >/dev/null 2>&1
/sbin/service pmlogger condrestart
/sbin/chkconfig --add pmlogger_farm >/dev/null 2>&1
/sbin/service pmlogger_farm condrestart
/sbin/chkconfig --add pmie >/dev/null 2>&1
/sbin/service pmie condrestart
/sbin/chkconfig --add pmie_farm >/dev/null 2>&1
/sbin/service pmie_farm condrestart
/sbin/chkconfig --add pmproxy >/dev/null 2>&1
/sbin/service pmproxy condrestart
%endif
@ -3376,6 +3353,22 @@ PCP_LOG_DIR=%{_logsdir}
%files zeroconf -f pcp-zeroconf-files.rpm
%changelog
* Wed Feb 02 2022 Nathan Scott <nathans@redhat.com> - 5.3.5-8
- Fix pcp-zeroconf logger interval override regression (BZ 1991764)
- Remove warnings from spec setup of PCP systemd units (BZ 2048024)
* Fri Jan 21 2022 Nathan Scott <nathans@redhat.com> - 5.3.5-5
- Further improve pmlogger and pmie farm services (BZ 2030138)
- Resolve a further KVM selinux issue with KVM (BZ 2006430)
- Rebuild to use latest selinux-policy for el9 (BZ 2041503)
* Fri Dec 17 2021 Nathan Scott <nathans@redhat.com> - 5.3.5-4
- pmdabcc: resolve compilation issues of some bcc PMDA modules on
aarch64, ppc64le and s390x (BZ 2024982)
- pmdabpf: support arm and powerpc architectures (BZ 2024980)
- Further improve pmlogger service startup latency (BZ 1973833)
- Additional improvements to farm systemd services (BZ 2030138)
* Thu Dec 09 2021 Nathan Scott <nathans@redhat.com> - 5.3.5-3
- Resolve failure in the Nvidia metrics agent (BZ 2030123)
- PMDA indom cache loading performance improvements (BZ 2030122)