fix pmlogger manual start failure when service is disabled
This commit is contained in:
parent
bf343b1573
commit
5c17f2a6f0
8
pcp.spec
8
pcp.spec
@ -1,6 +1,6 @@
|
||||
Name: pcp
|
||||
Version: 5.3.4
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
Summary: System-level performance monitoring and performance management
|
||||
License: GPLv2+ and LGPLv2+ and CC-BY
|
||||
URL: https://pcp.io
|
||||
@ -8,6 +8,8 @@ URL: https://pcp.io
|
||||
%global artifactory https://performancecopilot.jfrog.io/artifactory
|
||||
Source0: %{artifactory}/pcp-source-release/pcp-%{version}.src.tar.gz
|
||||
|
||||
Patch0: remove-run-level-check.patch
|
||||
|
||||
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7
|
||||
%global __python2 python2
|
||||
%else
|
||||
@ -2263,6 +2265,7 @@ updated policy package.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
# the buildsubdir macro gets defined in %setup and is apparently only available in the next step (i.e. the %build step)
|
||||
@ -3339,6 +3342,9 @@ PCP_LOG_DIR=%{_logsdir}
|
||||
%files zeroconf -f pcp-zeroconf-files.rpm
|
||||
|
||||
%changelog
|
||||
* Fri Oct 15 2021 Mark Goodwin <mgoodwin@redhat.com> - 5.3.4-2
|
||||
- fix pmlogger manual start failure when service is disabled
|
||||
|
||||
* Fri Oct 08 2021 Nathan Scott <nathans@redhat.com> - 5.3.4-1
|
||||
- Update to latest PCP sources.
|
||||
|
||||
|
183
remove-run-level-check.patch
Normal file
183
remove-run-level-check.patch
Normal file
@ -0,0 +1,183 @@
|
||||
commit b9ff7d65b5e11cae35995495b4177443283c9a31
|
||||
Author: Mark Goodwin <mgoodwin@redhat.com>
|
||||
Date: Wed Oct 13 12:04:35 2021 +1100
|
||||
|
||||
services: remove run-level check in pmlogger systemd service config
|
||||
|
||||
Remove the run-level check (pmlogger_check -C flag) since systemd
|
||||
uses targets for run-level checks. The run-level checks were causing
|
||||
the pmlogger service to fail to manually start (via systemctl start
|
||||
pmlogger) when the service is disabled.
|
||||
|
||||
New test qa/1889 checks pmlogger still starts even if disabled (on
|
||||
systemd platforms only). qa/808 is also reworked since it was running
|
||||
pmlogger_check directly and was failing every *second* run.
|
||||
|
||||
diff --git a/qa/1889 b/qa/1889
|
||||
new file mode 100755
|
||||
index 000000000..00b748968
|
||||
--- /dev/null
|
||||
+++ b/qa/1889
|
||||
@@ -0,0 +1,68 @@
|
||||
+#!/bin/sh
|
||||
+# PCP QA Test No. 1889
|
||||
+# test primary pmlogger starts under systemd when service is disabled
|
||||
+#
|
||||
+# Copyright (c) 2021 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
|
||||
+
|
||||
+# this tests systemd starting pmlogger
|
||||
+which systemctl >/dev/null 2>&1 || _notrun "systemctl not installed"
|
||||
+
|
||||
+_cleanup()
|
||||
+{
|
||||
+ cd $here
|
||||
+ if [ -n "$pid" ]
|
||||
+ then
|
||||
+ $sudo rm -f $PCP_TMP_DIR/pmlogger/$pid $PCP_RUN_DIR/pmlogger.$pid.socket
|
||||
+ fi
|
||||
+ $sudo rm -f $PCP_RUN_DIR/pmlogger.pid
|
||||
+ echo "=== enable pmlogger.service"
|
||||
+ $sudo systemctl enable pmlogger.service >/dev/null 2>&1
|
||||
+ _restore_auto_restart pmlogger
|
||||
+ _service pmlogger restart | _filter_pcp_start
|
||||
+ rm -rf $tmp.*
|
||||
+}
|
||||
+
|
||||
+status=1 # failure is the default!
|
||||
+$sudo rm -rf $tmp.* $seq.full
|
||||
+trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||
+
|
||||
+# real QA test starts here
|
||||
+_stop_auto_restart pmlogger
|
||||
+
|
||||
+pid=`$PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep 'pmlogger.*-P' | \
|
||||
+grep -v grep | awk '{print $2}'`
|
||||
+
|
||||
+if [ ! -S "$PCP_RUN_DIR/pmlogger.$pid.socket" ]; then
|
||||
+ echo FAIL no primary pmlogger running? pid=$pid
|
||||
+ status=1
|
||||
+ exit
|
||||
+fi
|
||||
+echo found primary pmlogger and found control socket in PCP_RUN_DIR
|
||||
+
|
||||
+echo "=== disable pmlogger.service" | tee -a $seq.full
|
||||
+$sudo systemctl disable pmlogger.service >>$seq.full 2>&1
|
||||
+
|
||||
+echo === start primary logger whilst disabled ===
|
||||
+_service pmlogger start | _filter_pcp_start
|
||||
+_wait_for_pmlogger
|
||||
+
|
||||
+newpid=`$PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep 'pmlogger.*-P' | \
|
||||
+ grep -v grep | awk '{print $2}'`
|
||||
+
|
||||
+if [ -z "$newpid" ]; then
|
||||
+ echo FAIL pmlogger failed to start whilst disabled
|
||||
+ status=1
|
||||
+ exit
|
||||
+fi
|
||||
+echo found primary pmlogger and found control socket in PCP_RUN_DIR
|
||||
+status=0
|
||||
+
|
||||
+exit
|
||||
diff --git a/qa/1889.out b/qa/1889.out
|
||||
new file mode 100644
|
||||
index 000000000..67d0e457f
|
||||
--- /dev/null
|
||||
+++ b/qa/1889.out
|
||||
@@ -0,0 +1,6 @@
|
||||
+QA output created by 1889
|
||||
+found primary pmlogger and found control socket in PCP_RUN_DIR
|
||||
+=== disable pmlogger.service
|
||||
+=== start primary logger whilst disabled ===
|
||||
+found primary pmlogger and found control socket in PCP_RUN_DIR
|
||||
+=== enable pmlogger.service
|
||||
diff --git a/qa/808 b/qa/808
|
||||
index 6b0b64a7e..f1c796ee9 100755
|
||||
--- a/qa/808
|
||||
+++ b/qa/808
|
||||
@@ -53,9 +53,9 @@ else
|
||||
done
|
||||
$sudo kill -0 $pid >/dev/null 2>&1 && echo "Arrggh, pid $pid won't die!"
|
||||
|
||||
- echo === running pmlogger_check to restart primary logger ===
|
||||
- $sudo $PCP_BINADM_DIR/pmlogger_check -C
|
||||
- sleep 2
|
||||
+ echo === restart primary logger ===
|
||||
+ _service pmlogger start | _filter_pcp_start
|
||||
+ _wait_for_pmlogger
|
||||
|
||||
newpid=`$PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep 'pmlogger.*-P' | \
|
||||
grep -v grep | awk '{print $2}'`
|
||||
@@ -98,9 +98,9 @@ else
|
||||
$sudo rm -f $PCP_RUN_DIR/pmlogger.primary.socket
|
||||
$sudo ln $PCP_RUN_DIR/pmlogger.$pid.socket $PCP_RUN_DIR/pmlogger.primary.socket
|
||||
|
||||
- echo === running pmlogger_check to restart primary logger ===
|
||||
- $sudo $PCP_BINADM_DIR/pmlogger_check -C
|
||||
- sleep 2
|
||||
+ echo === restart primary logger ===
|
||||
+ _service pmlogger start | _filter_pcp_start
|
||||
+ _wait_for_pmlogger
|
||||
|
||||
newpid=`$PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep 'pmlogger.*-P' | \
|
||||
grep -v grep | awk '{print $2}'`
|
||||
diff --git a/qa/808.out b/qa/808.out
|
||||
index fdd386503..be2f16086 100644
|
||||
--- a/qa/808.out
|
||||
+++ b/qa/808.out
|
||||
@@ -1,7 +1,7 @@
|
||||
QA output created by 808
|
||||
found primary pmlogger and found control socket in PCP_RUN_DIR
|
||||
=== killing the primary pmlogger with SIGKILL ===
|
||||
-=== running pmlogger_check to restart primary logger ===
|
||||
+=== restart primary logger ===
|
||||
=== checking with stale legacy hard links
|
||||
=== killing the primary pmlogger with SIGKILL ===
|
||||
-=== running pmlogger_check to restart primary logger ===
|
||||
+=== restart primary logger ===
|
||||
diff --git a/qa/group b/qa/group
|
||||
index 7b50c353e..3f2033f53 100644
|
||||
--- a/qa/group
|
||||
+++ b/qa/group
|
||||
@@ -1946,6 +1946,7 @@ x11
|
||||
1874 pmseries pmproxy local
|
||||
1876 pmcd secure local
|
||||
1886 pmseries libpcp_web local
|
||||
+1889 pmlogger local
|
||||
1893 pmda.proc local
|
||||
1895 pmda.bpf local
|
||||
1896 pmlogger logutil pmlc local
|
||||
diff --git a/src/pmlogger/pmlogger.service.in b/src/pmlogger/pmlogger.service.in
|
||||
index 19b904cff..c24143734 100644
|
||||
--- a/src/pmlogger/pmlogger.service.in
|
||||
+++ b/src/pmlogger/pmlogger.service.in
|
||||
@@ -9,7 +9,7 @@ Wants=pmcd.service
|
||||
[Service]
|
||||
Type=notify
|
||||
NotifyAccess=all
|
||||
-Environment="PMLOGGER_CHECK_PARAMS=-C --only-primary"
|
||||
+Environment="PMLOGGER_CHECK_PARAMS=--only-primary"
|
||||
EnvironmentFile=-@PCP_SYSCONFIG_DIR@/pmlogger
|
||||
TimeoutStartSec=120
|
||||
TimeoutStopSec=120
|
||||
diff --git a/src/pmlogger/pmlogger_check.service.in b/src/pmlogger/pmlogger_check.service.in
|
||||
index af58997f3..ef24d30a5 100644
|
||||
--- a/src/pmlogger/pmlogger_check.service.in
|
||||
+++ b/src/pmlogger/pmlogger_check.service.in
|
||||
@@ -13,7 +13,7 @@ TimeoutStopSec=120
|
||||
# which is timer driven and exits. KillMode is temporary and will
|
||||
# not be necessary once we have pmlogger-farm.service.
|
||||
KillMode=process
|
||||
-Environment="PMLOGGER_CHECK_PARAMS=-C --skip-primary"
|
||||
+Environment="PMLOGGER_CHECK_PARAMS=--skip-primary"
|
||||
EnvironmentFile=-@PCP_SYSCONFIG_DIR@/pmlogger_timers
|
||||
ExecStart=@PCP_BINADM_DIR@/pmlogger_check $PMLOGGER_CHECK_PARAMS
|
||||
WorkingDirectory=@PCP_VAR_DIR@
|
Loading…
Reference in New Issue
Block a user