This file is indexed.

/var/lib/pcp/testsuite/835 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/bin/sh
# PCP QA Test No. 835
# Exercise the memcache PMDA - install, remove and values.
#
# Copyright (c) 2014-2015 Red Hat.
# Copyright (c) 2014 Ken McDonell.  All Rights Reserved.
# Copyright (c) 2008 Aconex.  All Rights Reserved. (based on qa/348)
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

[ -d $PCP_PMDAS_DIR/memcache ] || _notrun "memcache PMDA directory is not installed"

port=11211
$PCP_BINADM_DIR/telnet-probe -c localhost $port || \
    _notrun "Noones home on the default memcached port $port"

status=1	# failure is the default!
$sudo rm -rf $tmp.* $seq.full

pmdamemcache_remove()
{
    echo
    echo "=== remove memcache agent ==="
    $sudo ./Remove >$tmp.out 2>&1
    _filter_pmda_remove <$tmp.out
}

pmdamemcache_install()
{
    # start from known starting points
    cd $PCP_PMDAS_DIR/memcache
    $sudo ./Remove >/dev/null 2>&1
    _service pmcd stop

    cat <<EOF >$tmp.config
\$memcache_delay = 1;
@memcache_instances = ( 0 => '127.0.0.1:11211' );
EOF
    echo "pmdamemcache config:" >> $here/$seq.full
    cat $tmp.config >> $here/$seq.full

    [ -f $PCP_PMDAS_DIR/memcache/memcache.conf ] && \
    $sudo cp $PCP_PMDAS_DIR/memcache/memcache.conf $tmp.backup
    $sudo cp $tmp.config $PCP_PMDAS_DIR/memcache/memcache.conf

    echo
    echo "=== memcache agent installation ==="
    $sudo ./Install </dev/null >$tmp.out 2>&1
    # Check metrics have appeared ... X metrics and Y values
    _filter_pmda_install <$tmp.out \
    | sed \
        -e '/^Waiting for pmcd/s/\.\.\.[. ]*$/DOTS/' \
    | $PCP_AWK_PROG '
/Check memcache metrics have appeared/  { if ($7 >= 16 && $7 <= 50) $7 = "X"
                                          if ($10 >= 16 && $10 <= 50) $10 = "Y"
                                        }
                                        { print }'
}

pmdamemcache_cleanup()
{
    if [ -f $tmp.backup ]; then
	$sudo cp $tmp.backup $PCP_PMDAS_DIR/memcache/memcache.conf
	$sudo rm $tmp.backup
    else
	$sudo rm -f $PCP_PMDAS_DIR/memcache/memcache.conf
    fi
    # note: _restore_auto_restart pmcd done in _cleanup_pmda()
    _cleanup_pmda memcache
}

_prepare_pmda memcache
trap "pmdamemcache_cleanup; exit \$status" 0 1 2 3 15

_stop_auto_restart pmcd

# make pmprobe output comparable to memcachestats
rewrite_memcache_metric_names()
{
    sed \
	-e 's/^memcache.//g' \
	-e 's/^gets /cmd_get /g' \
	-e 's/^sets /cmd_set /g' \
	-e 's/^hits /get_hits /g' \
	-e 's/^misses /get_misses /g' \
	-e 's/^current_items/curr_items/g' \
	-e 's/^current_connections/curr_connections/g' \
    #end#
}

# real QA test starts here
pmdamemcache_install

echo
echo "=== extract metric values ==="
pmprobe -v memcache \
| rewrite_memcache_metric_names \
| LC_COLLATE=POSIX sort >$tmp.probe
echo "from pmprobe ..." >>$here/$seq.full

$here/src/memcachestats.pl \
| sed -e 's/ / 1 /' \
| LC_COLLATE=POSIX sort >$tmp.values
echo "from src/memcachestats.pl ..." >>$here/$seq.full

cat $tmp.values >>$here/$seq.full
LC_COLLATE=POSIX join $tmp.probe $tmp.values >$tmp.all
echo >>$here/$seq.full
cat $tmp.all >>$here/$seq.full

echo
echo "=== check values ==="
cat $tmp.all \
| while read metric n1 vpcp n2 vmemcache
do
    if [ "$n1" = 1 -a "$n2" = 1 ]
    then
        case $metric
        in
	    bytes_read|bytes_written)
		# unstable, skip these ones
		;;
	    curr_connections|connection_structures)
		# +/- 2
                _within_tolerance $metric $vpcp $vmemcache 2 -v
                ;;
            total_connections)
		# +/- 5
                _within_tolerance $metric $vpcp $vmemcache 5 -v
                ;;
            *)
		# +/- 10%
                _within_tolerance $metric $vpcp $vmemcache 10% -v
                ;;
        esac
    else
        echo "$metric: number of values not 1 as expected: pcp $n1 / memcache $n2"
    fi
done | tee -a $here/$seq.full

pmdamemcache_remove
status=0
exit