# LDADD := -lreadline -ltermcap # -lefence
noinst_DATA = disk1_8.tar.bz2
-noinst_SCRIPTS = leak_finder.pl llmount.sh llmountcleanup.sh
+noinst_SCRIPTS = leak_finder.pl llmount.sh llmountcleanup.sh functions.sh
noinst_SCRIPTS += test-framework.sh runvmstat runiozone runtests
noinst_SCRIPTS += sanity.sh rundbench acceptance-small.sh compile.sh
noinst_SCRIPTS += conf-sanity.sh insanity.sh lfscktest.sh oos.sh oos2.sh
noinst_SCRIPTS += sanity-sec.sh sanity-gss.sh krb5_login.sh setup_kerberos.sh
noinst_SCRIPTS += recovery-mds-scale.sh run_dd.sh run_tar.sh run_iozone.sh
noinst_SCRIPTS += run_dbench.sh recovery-double-scale.sh
+noinst_SCRIPTS += recovery-random-scale.sh
nobase_noinst_SCRIPTS = cfg/local.sh
nobase_noinst_SCRIPTS += acl/make-tree acl/run cfg/ncli.sh
nobase_noinst_SCRIPTS += racer/dir_create.sh racer/file_create.sh racer/file_list.sh
--- /dev/null
+#!/bin/bash
+
+# Simple function used by run_*.sh scripts
+
+assert_env() {
+ local failed=""
+ for name in $@; do
+ if [ -z "${!name}" ]; then
+ echo "$0: $name must be set"
+ failed=1
+ fi
+ done
+ [ $failed ] && exit 1 || true
+}
+
+echoerr () { echo "$@" 1>&2 ; }
+
+signaled() {
+ echoerr "$(date +'%F %H:%M:%S'): client load was signaled to terminate"
+
+ local PGID=$(ps -eo "%c %p %r" | awk "/ $PPID / {print \$3}")
+ kill -TERM -$PGID
+ sleep 5
+ kill -KILL -$PGID
+}
+
rm -f $LOG $DEBUGLOG
exec 2>$DEBUGLOG
-if [ -z "$MOUNT" -o -z "$END_RUN_FILE" -o -z "$LOAD_PID_FILE" ]; then
- echo "The following must be set: MOUNT END_RUN_FILE LOAD_PID_FILE"
- exit 1
-fi
+. $(dirname $0)/functions.sh
-echoerr () { echo "$@" 1>&2 ; }
-
-signaled() {
- trap 0
- echoerr "$(date +'%F %H:%M:%S'): client load was signaled to terminate"
- kill $load_pid
- kill -TERM -$PPID
- sleep 5
- kill -KILL -$PPID
-}
+assert_env MOUNT END_RUN_FILE LOAD_PID_FILE
trap signaled TERM
-# recovery-mds-scale uses this to signal the client loads to die
+# recovery-*-scale scripts use this to signal the client loads to die
echo $$ >$LOAD_PID_FILE
TESTDIR=$MOUNT/d0.dbench-$(hostname)
rm -f $LOG $DEBUGLOG
exec 2>$DEBUGLOG
-if [ -z "$MOUNT" -o -z "$END_RUN_FILE" -o -z "$LOAD_PID_FILE" ]; then
- echo "The following must be set: MOUNT END_RUN_FILE LOAD_PID_FILE"
- exit 1
-fi
+. $(dirname $0)/functions.sh
-echoerr () { echo "$@" 1>&2 ; }
-
-signaled() {
- echoerr "$(date +'%F %H:%M:%S'): client load was signaled to terminate"
- kill -TERM -$PPID
- sleep 5
- kill -KILL -$PPID
-}
+assert_env MOUNT END_RUN_FILE LOAD_PID_FILE
trap signaled TERM
-# recovery-mds-scale uses this to signal the client loads to die
+# recovery-*-scale scripts use this to signal the client loads to die
echo $$ >$LOAD_PID_FILE
TESTDIR=$MOUNT/d0.dd-$(hostname)
rm -f $LOG $DEBUGLOG
exec 2>$DEBUGLOG
-if [ -z "$MOUNT" -o -z "$END_RUN_FILE" -o -z "$LOAD_PID_FILE" ]; then
- echo "The following must be set: MOUNT END_RUN_FILE LOAD_PID_FILE"
- exit 1
-fi
+. $(dirname $0)/functions.sh
-echoerr () { echo "$@" 1>&2 ; }
-
-signaled() {
- echoerr "$(date +'%F %H:%M:%S'): client load was signaled to terminate"
- kill -TERM -$PPID
- sleep 5
- kill -KILL -$PPID
-}
+assert_env MOUNT END_RUN_FILE LOAD_PID_FILE
trap signaled TERM
-# recovery-mds-scale uses this to signal the client loads to die
+# recovery-*-scale scripts use this to signal the client loads to die
echo $$ >$LOAD_PID_FILE
TESTDIR=$MOUNT/d0.iozone-$(hostname)
-# needed to debug oom problem
-#echo 1 > /proc/sys/vm/vm_gfp_debug
-#killpids=""
-#vmstat 1 1000000 >$TMP/iozone.vmstat.out &
-#killpids="$killpids $!"
-#$LUSTRE_TESTS/runvmstat > $TMP/iozone.runvmstat.out &
-#killpids="$killpids $!"
-
CONTINUE=true
while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
echoerr "$(date +'%F %H:%M:%S'): iozone run starting"
done
echoerr "$(date +'%F %H:%M:%S'): iozone run exiting"
-#kill $killpids
-#sleep 5
-#kill -9 $killpids
rm -f $LOG $DEBUGLOG
exec 2>$DEBUGLOG
-if [ -z "$MOUNT" -o -z "$END_RUN_FILE" -o -z "$LOAD_PID_FILE" ]; then
- echo "The following must be set: MOUNT END_RUN_FILE LOAD_PID_FILE"
- exit 1
-fi
+. $(dirname $0)/functions.sh
-echoerr () { echo "$@" 1>&2 ; }
-
-signaled() {
- echoerr "$(date +'%F %H:%M:%S'): client load was signaled to terminate"
- kill -TERM -$PPID
- sleep 5
- kill -KILL -$PPID
-}
+assert_env MOUNT END_RUN_FILE LOAD_PID_FILE
trap signaled TERM
-# recovery-mds-scale uses this to signal the client loads to die
+# recovery-*-scale scripts use this to signal the client loads to die
echo $$ >$LOAD_PID_FILE
TESTDIR=$MOUNT/d0.tar-$(hostname)
#export PDSH="pdsh -S -Rssh -w"
-# eg, assert_env LUSTRE MDSNODES OSTNODES CLIENTS
-assert_env() {
- local failed=""
- for name in $@; do
- if [ -z "${!name}" ]; then
- echo "$0: $name must be set"
- failed=1
- fi
- done
- [ $failed ] && exit 1 || true
-}
+# function used by scripts run on remote nodes
+. $(dirname $0)/functions.sh
assert_DIR () {
local failed=""