File: 025

package info (click to toggle)
pcp 7.1.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 252,748 kB
  • sloc: ansic: 1,483,656; sh: 182,366; xml: 160,462; cpp: 83,813; python: 24,980; perl: 18,327; yacc: 6,877; lex: 2,864; makefile: 2,738; awk: 165; fortran: 60; java: 52
file content (85 lines) | stat: -rwxr-xr-x 2,203 bytes parent folder | download
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