#!/bin/bash
-set -x
TMP=${TMP:-/tmp}
-TESTSUITELOG=${TESTSUITELOG:-$TMP/recovery-mds-scale}
-LOG=${TESTSUITELOG}_$(basename $0)-$(hostname)
-DEBUGLOG=${LOG}.debug
+TESTLOG_PREFIX=${TESTLOG_PREFIX:-$TMP/recovery-mds-scale}
+TESTNAME=${TESTNAME:-""}
+[ -n "$TESTNAME" ] && TESTLOG_PREFIX=$TESTLOG_PREFIX.$TESTNAME
+
+LOG=$TESTLOG_PREFIX.$(basename $0 .sh)_stdout.$(hostname -s).log
+DEBUGLOG=$(echo $LOG | sed 's/\(.*\)stdout/\1debug/')
mkdir -p ${LOG%/*}
rm -f $LOG $DEBUGLOG
exec 2>$DEBUGLOG
+set -x
-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
-
-echoerr () { echo "$@" 1>&2 ; }
+. $(dirname $0)/functions.sh
-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/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 $!"
+TESTDIR=$MOUNT/d0.iozone-$(hostname)
CONTINUE=true
while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
load_pid=$!
wait $load_pid
if [ ${PIPESTATUS[0]} -eq 0 ]; then
- echoerr "$(date +'%F %H:%M:%S'): iozone succeeded"
- cd $TMP
- rm -rf $TESTDIR
+ echoerr "$(date +'%F %H:%M:%S'): iozone succeeded"
+ cd $TMP
+ rm -rf $TESTDIR
if [ -d $TESTDIR ]; then
- echoerr "$(date +'%F %H:%M:%S'): failed to remove $TESTDIR"
- echo $(hostname) >> $END_RUN_FILE
+ echoerr "$(date +'%F %H:%M:%S'): failed to remove $TESTDIR"
+ echo $(hostname) >> $END_RUN_FILE
CONTINUE=false
fi
- echoerr "$(date +'%F %H:%M:%S'): iozone run finished"
+ echoerr "$(date +'%F %H:%M:%S'): iozone run finished"
else
- echoerr "$(date +'%F %H:%M:%S'): iozone failed"
- if [ -z "$ERRORS_OK" ]; then
- echo $(hostname) >> $END_RUN_FILE
- fi
- if [ $BREAK_ON_ERROR ]; then
- # break
+ echoerr "$(date +'%F %H:%M:%S'): iozone failed"
+ if [ -z "$ERRORS_OK" ]; then
+ echo $(hostname) >> $END_RUN_FILE
+ fi
+ if [ $BREAK_ON_ERROR ]; then
+ # break
CONTINUE=false
- fi
+ fi
fi
done
echoerr "$(date +'%F %H:%M:%S'): iozone run exiting"
-#kill $killpids
-#sleep 5
-#kill -9 $killpids