1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#! /bin/sh
# PCP QA Test No. 025
# pmcd reconnect and error propagation
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard filters
. ./common.product
. ./common.filter
. ./common.check
trap "_cleanup; rm -f $tmp.*; exit" 0 1 2 3 15
_stop_auto_restart pmcd
_stop_auto_restart pmlogger
use_systemd=''
if [ "$PCPQA_SYSTEMD" = yes ]
then
use_systemd='-s'
# these other services really get in the way and prevent a
# clean pmlogger restart from src/pmcdgone
#
for svc in \
pmlogger_check.timer pmlogger_check.service \
pmlogger_daily.timer pmlogger_daily.service
do
case "$svc" in
*.timer)
;;
*)
$sudo systemctl disable $svc >>$seq_full 2>&1
;;
esac
$sudo systemctl stop $svc >>$seq_full 2>&1
echo "+ after stop $svc ..." >>$seq_full
_get_pids_by_name pmlogger >>$seq_full 2>&1
$PCP_PS_PROG $PCP_PS_ALL_FLAGS | grep '[P]PID|/[p]mlogger( |$)' >>$seq_full
done
# and now get a clean pmlogger without the other hangers-on
#
$sudo systemctl restart pmlogger
_wait_for_pmlogger || _exit 1
fi
echo "Using system? \"$use_systemd\" (-s => yes)" >>$seq_full
_cleanup()
{
_restore_auto_restart pmcd
_restore_auto_restart pmlogger
if [ "X$use_systemd" = X-s ]
then
for svc in \
pmlogger_check.service \
pmlogger_daily.service \
pmlogger_daily-poll.service
do
$sudo systemctl enable $svc >>$seq_full 2>&1
$sudo systemctl start $svc >>$seq_full 2>&1
done
fi
# these come from src/pmcdgone running _wait_for_pmlogger w/out $tmp
# being set ...
#
rm -f ._wait_for_pmlogger.host ._wait_for_pmlogger.pmlc
# don't exit until pmlogger is running
#
_wait_for_pmlogger
}
# real QA test starts here
export tmp seq seq_full
$sudo src/pmcdgone $use_systemd 2>&1 \
| tee -a $seq_full \
| sed \
-e '/^+ /d' \
-e '/__pmGetPDU: fd=3 BINARY hdr: Broken pipe/d' \
-e '/__pmGetPDU: fd=5 hdr read: len=-1: Bad file descriptor/d' \
-e '/pmLookupDesc:/s/Connection reset by peer/IPC protocol failure/' \
-e '/pmReconnectContext:/s/Operation/Connection/' \
| _filter_pcp_start
|