Whamcloud - gitweb
b=17973
authorgrev <grev>
Fri, 3 Apr 2009 19:29:00 +0000 (19:29 +0000)
committergrev <grev>
Fri, 3 Apr 2009 19:29:00 +0000 (19:29 +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 5c4252d..e0bc586 100644 (file)
@@ -5,7 +5,7 @@ AM_CFLAGS = $(LLCFLAGS)
 # 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
@@ -19,6 +19,7 @@ noinst_SCRIPTS += lockorder.sh socketclient socketserver runmultiop_bg_pause
 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
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 920e6af..ed2eb76 100644 (file)
@@ -18,17 +18,8 @@ export IDENTITY_UPCALL=default
 
 #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=""