Whamcloud - gitweb
b=17973
authorgrev <grev>
Fri, 3 Apr 2009 19:34:06 +0000 (19:34 +0000)
committergrev <grev>
Fri, 3 Apr 2009 19:34:06 +0000 (19:34 +0000)
i=Brian
run_* scripts fix: kill PGID properly

lustre/tests/Makefile.am
lustre/tests/functions.sh [new file with mode: 0644]
lustre/tests/run_dbench.sh
lustre/tests/run_dd.sh
lustre/tests/run_iozone.sh
lustre/tests/run_tar.sh
lustre/tests/test-framework.sh

index 4e4e3c6..c7eadff 100644 (file)
@@ -5,7 +5,7 @@ AM_CFLAGS = $(LLCFLAGS)
 # LDADD := -lreadline -ltermcap # -lefence
 
 noinst_DATA = disk1_4.zip
-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
diff --git a/lustre/tests/functions.sh b/lustre/tests/functions.sh
new file mode 100644 (file)
index 0000000..c5b806e
--- /dev/null
@@ -0,0 +1,26 @@
+#!/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
+}
+
index 45cfceb..f1520e8 100755 (executable)
@@ -12,25 +12,13 @@ mkdir -p ${LOG%/*}
 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)
index f4f1a54..d50150e 100755 (executable)
@@ -12,23 +12,13 @@ mkdir -p ${LOG%/*}
 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)
index 2d075d7..297142d 100755 (executable)
@@ -12,35 +12,17 @@ mkdir -p ${LOG%/*}
 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"
@@ -72,6 +54,3 @@ while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
 done
 
 echoerr "$(date +'%F %H:%M:%S'): iozone run exiting"
-#kill $killpids
-#sleep 5
-#kill -9 $killpids
index 5f40e68..9005ac4 100755 (executable)
@@ -12,23 +12,13 @@ mkdir -p ${LOG%/*}
 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)
index 18f9b05..e7a08dd 100644 (file)
@@ -13,17 +13,8 @@ export GMNALNID=${GMNALNID:-/usr/sbin/gmlndnid}
 export CATASTROPHE=${CATASTROPHE:-/proc/sys/lnet/catastrophe}
 #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=""