Fix pmlogger manual start with service disabled
Resolves: rhbz#2013937
This commit is contained in:
parent
95e86a0a13
commit
4144cadcb7
8
pcp.spec
8
pcp.spec
@ -1,6 +1,6 @@
|
|||||||
Name: pcp
|
Name: pcp
|
||||||
Version: 5.3.4
|
Version: 5.3.4
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: System-level performance monitoring and performance management
|
Summary: System-level performance monitoring and performance management
|
||||||
License: GPLv2+ and LGPLv2+ and CC-BY
|
License: GPLv2+ and LGPLv2+ and CC-BY
|
||||||
URL: https://pcp.io
|
URL: https://pcp.io
|
||||||
@ -8,6 +8,8 @@ URL: https://pcp.io
|
|||||||
%global artifactory https://performancecopilot.jfrog.io/artifactory
|
%global artifactory https://performancecopilot.jfrog.io/artifactory
|
||||||
Source0: %{artifactory}/pcp-source-release/pcp-%{version}.src.tar.gz
|
Source0: %{artifactory}/pcp-source-release/pcp-%{version}.src.tar.gz
|
||||||
|
|
||||||
|
Patch0: remove-run-level-check.patch
|
||||||
|
|
||||||
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7
|
%if 0%{?fedora} >= 26 || 0%{?rhel} > 7
|
||||||
%global __python2 python2
|
%global __python2 python2
|
||||||
%else
|
%else
|
||||||
@ -2266,6 +2268,7 @@ updated policy package.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# the buildsubdir macro gets defined in %setup and is apparently only available in the next step (i.e. the %build step)
|
# the buildsubdir macro gets defined in %setup and is apparently only available in the next step (i.e. the %build step)
|
||||||
@ -3342,6 +3345,9 @@ PCP_LOG_DIR=%{_logsdir}
|
|||||||
%files zeroconf -f pcp-zeroconf-files.rpm
|
%files zeroconf -f pcp-zeroconf-files.rpm
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Oct 15 2021 Mark Goodwin <mgoodwin@redhat.com> - 5.3.4-2
|
||||||
|
- Fix pmlogger manual start with service disabled (BZ 2013937)
|
||||||
|
|
||||||
* Fri Oct 08 2021 Nathan Scott <nathans@redhat.com> - 5.3.4-1
|
* Fri Oct 08 2021 Nathan Scott <nathans@redhat.com> - 5.3.4-1
|
||||||
- Update to latest PCP sources (BZ 1991764)
|
- Update to latest PCP sources (BZ 1991764)
|
||||||
|
|
||||||
|
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