/var/lib/pcp/testsuite/866 is in pcp-testsuite 4.0.1-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 132 133 | #!/bin/sh
# PCP QA Test No. 866
# Use libpcp_fault to exercise pdu timeout handling.
#
# Copyright (c) 2016 Ken McDonell. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
src/check_fault_injection >/dev/null 2>&1 || \
_notrun "libpcp not built with fault injection enabled"
status=1 # failure is the default!
$sudo rm -rf $tmp $tmp.* $seq.full
trap "cd $here; rm -rf $tmp $tmp.*; exit \$status" 0 1 2 3 15
# avoid any PDUs associated with the definition of derived metrics
export PCP_DERIVED_CONFIG=
export PM_FAULT_CONTROL=$tmp.control
export LD_PRELOAD=$PCP_LIB_DIR/libpcp_fault.so
# [Sat Jul 30 17:33:55] multictx(26317) Error: __pmCloseChannel: fd=3 context=1: Timeout waiting for a response from PMCD
_filter()
{
sed \
-e 's/multictx([0-9][0-9]*)/multictx(PID)/' \
-e 's/store([0-9][0-9]*)/store(PID)/' \
-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]/' \
# end
}
# # samples is sufficient to do all ops in multictx.c 3 times
#
samples=30
# real QA test starts here
echo "force 2nd pmFetch to timeout"
cat >$tmp.control <<End-of-File
libpcp/fetch.c:1 == 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
# note, 1 pmLookupDesc call per metric in the multictx.c preamble,
# so fault guard is 4 (2+2)
echo
echo "force 2nd pmLookupDesc to timeout"
cat >$tmp.control <<End-of-File
libpcp/desc.c:1 == 4
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
# note, 1 pmLookupName call per metric in the multictx.c preamble,
# so fault guard is 4 (2+2)
echo
echo "force 2nd pmLookupName to timeout"
cat >$tmp.control <<End-of-File
libpcp/pmns.c:1 == 4
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
echo
echo "force 2nd pmNameID to timeout"
cat >$tmp.control <<End-of-File
libpcp/pmns.c:3 == 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
echo
echo "force 2nd pmGetChildrenStatus to timeout"
cat >$tmp.control <<End-of-File
libpcp/pmns.c:2 == 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
echo
echo "force 2nd pmLookupText to timeout"
cat >$tmp.control <<End-of-File
libpcp/help.c:1 == 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
# note, 1 pmGetIndom call per metric in the multictx.c preamble,
# so fault guard is 4 (2+2)
echo
echo "force 2nd pmGetInDom to timeout"
cat >$tmp.control <<End-of-File
libpcp/instance.c:1 == 4
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
echo
echo "force 2nd pmNameInDom to timeout"
cat >$tmp.control <<End-of-File
libpcp/instance.c:2 == 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
echo
echo "force 2nd pmLookupInDom to timeout"
cat >$tmp.control <<End-of-File
libpcp/instance.c:3 == 2
End-of-File
src/multictx -s $samples sample.colour pmcd.buf.alloc 2>&1 \
| _filter
echo
echo "force 3nd pmStore to timeout"
cat >$tmp.control <<End-of-File
libpcp/store.c:1 == 3
End-of-File
src/store 2>&1 \
| _filter
# success, all done
status=0
exit
|