blob: a77f18c135151044b9dd59426469b062618edece (
plain)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#! /bin/sh
# PCP QA Test No. 200
# $PMCD_RECONNECT_TIMEOUT validation
#
# 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
rm -f $seq.out
if [ $PCP_VER -lt 3702 ]
then
ln $seq.out.1 $seq.out || exit 1
else
ln $seq.out.2 $seq.out || exit 1
fi
status=1
rm -f $seq.full
_filter()
{
$PCP_AWK_PROG '
BEGIN { last = "" }
$0 != last { print; last = $0 }' \
| sed \
-e 's/failed: Connection reset by peer/failed: IPC protocol failure/' \
-e 's/[A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DATE/' \
-e '/recon([0-9][0-9]*)/s//recon(PID)/' \
-e '/^Context\[/d' \
-e '/^pmReconnectContext(/d' \
-e '/^Dump Contexts:/d' \
-e '/^Dump Instance Profile /d' \
-e '/^IPC table fd/d' \
-e '/^__pmConnectPMCD(/d' \
-e '/^__pmDecodeXtendError:/d' \
-e '/^pmNewContext(/d' \
-e '/^__pmSendCreds:/d' \
-e '/^__pmSetSocketIPC:/d' \
-e '/^__pmSetVersionIPC:/d' \
-e '/^__pmDataIPC: /d' \
-e '/^__pmSetDataIPC:/d' \
-e '/^pmWhichContext(/d' \
-e '/__pmConnect(fd=.*) ->/d' \
| $PCP_AWK_PROG '
/delay: 6 / { print "delay: 6-10 secs"; next }
/delay: 7 / { print "delay: 6-10 secs"; next }
/delay: 8 / { print "delay: 6-10 secs"; next }
/delay: 9 / { print "delay: 6-10 secs"; next }
/delay: 10 / { print "delay: 6-10 secs"; next }
/delay: 14 / { print "delay: 14-16 secs"; next }
/delay: 15 / { print "delay: 14-16 secs"; next }
/delay: 16 / { print "delay: 14-16 secs"; next }
{ print }'
}
cat >$tmp.new <<End-of-File
# From QA 200
#
# Name Id IPC IPC Params File/Cmd
pmcd 2 dso pmcd_init $PCP_PMDAS_DIR/pmcd/pmda_pmcd.so
sample 29 pipe binary $PCP_PMDAS_DIR/sample/pmdasample -d 29
End-of-File
# copy the pmcd config file to restore state later.
$sudo cp $PCP_PMCDCONF_PATH $tmp.pmcd.conf
$sudo cp $tmp.new $PCP_PMCDCONF_PATH
# ensure we have pmcd ready for the first iteration.
$sudo $PCP_RC_DIR/pcp start >/dev/null 2>&1
_wait_for_pmcd
_wait_for_pmlogger
_cleanup()
{
[ -f $tmp.pmcd.conf ] && $sudo cp $tmp.pmcd.conf $PCP_PMCDCONF_PATH
[ "$PCP_PLATFORM" != "linux" ] && _change_config pmlogger on
$sudo $PCP_RC_DIR/pcp restart >/dev/null
_wait_for_pmcd
_wait_for_pmlogger
$sudo rm -f $tmp.pmcd.conf
rm -f $tmp.*
exit $status
}
trap _cleanup 0 1 2 3 15
# real QA test starts here
for xxx in "" "1,3,5" "2" "1-2" "1,2,foo"
do
if [ "X$xxx" = X ]
then
unset PMCD_RECONNECT_TIMEOUT
else
PMCD_RECONNECT_TIMEOUT="$xxx"
export PMCD_RECONNECT_TIMEOUT
fi
echo
echo "PMCD_RECONNECT_TIMEOUT=\"$PMCD_RECONNECT_TIMEOUT\""
echo "start PMCD_RECONNECT_TIMEOUT=$PMCD_RECONNECT_TIMEOUT" >>$seq.full
echo "start `date`" >>$seq.full
DEBUG=
DEBUG=-D16
src/recon $DEBUG >$tmp.out 2>&1 &
sleep 2
echo "begin stop pmcd `date`" >>$seq.full
$sudo $PCP_RC_DIR/pcp stop | _filter_pcp_stop
echo "end stop pmcd `date`" >>$seq.full
sleep 4
echo "begin start pmcd `date`" >>$seq.full
$sudo $PCP_RC_DIR/pcp start \
| _filter_pcp_start \
| sed -e '/starting archive loggers/d' -e '/Starting pmlogger/d'
echo "end start pmcd `date`" >>$seq.full
wait
_filter <$tmp.out
cat $tmp.out >>$seq.full
done
status=0
exit
|