Whamcloud - gitweb
LU-3326 tests: sync after file deleted in run_*.sh 25/11425/2
authorHongchao Zhang <hongchao.zhang@intel.com>
Tue, 12 Aug 2014 20:55:15 +0000 (13:55 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 14 Aug 2014 15:43:30 +0000 (15:43 +0000)
In run_*.sh, call sync to flush any dirty pages to OST
if MDT has not sent the object destroy request to it,
which will shrink the available disk space gotten before
running the tests and cause -EIO error.

This patch is back-ported from the following one:
Lustre-commit: 58c2a357202ba83d26ba9d8f1d9c093e3272e9a0
Lustre-change: http://review.whamcloud.com/8071

Test-Parameters: alwaysuploadlogs \
envdefinitions=SLOW=yes,ENABLE_QUOTA=yes,REQFAIL=100,DURATION=28800 \
clientdistro=el6 ossdistro=el6 mdsdistro=el6 clientarch=x86_64 \
ossarch=x86_64 mdsarch=x86_64 clientcount=4 osscount=2 mdscount=2 \
mdssizegb=10 ostsizegb=10 austeroptions=-R failover=true iscsi=1 \
testlist=recovery-mds-scale

Signed-off-by: Hongchao Zhang <hongchao.zhang@intel.com>
Change-Id: I922774dcbf5546a9f5e3fe345bac954fd73d50a7
Signed-off-by: Jian Yu <jian.yu@intel.com>
Reviewed-on: http://review.whamcloud.com/11425
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/tests/run_IOR.sh
lustre/tests/run_dbench.sh
lustre/tests/run_dd.sh
lustre/tests/run_iozone.sh
lustre/tests/run_tar.sh

index 228926d..d27ab15 100755 (executable)
@@ -39,31 +39,33 @@ TESTDIR=${TESTDIR:-$MOUNT/d0.ior-$(hostname)}
 
 CONTINUE=true
 while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
-    echoerr "$(date +'%F %H:%M:%S'): IOR run starting"
-    mkdir -p $TESTDIR
-    # need this only if TESTDIR is not default
-    chmod -R 777 $TESTDIR
+       echoerr "$(date +'%F %H:%M:%S'): IOR run starting"
+       mkdir -p $TESTDIR
+       # need this only if TESTDIR is not default
+       chmod -R 777 $TESTDIR
 
+       sync
        mpi_run ${MACHINEFILE_OPTION} ${MACHINEFILE} \
                -np $((NUM_CLIENTS * THREADS_PER_CLIENT)) $IOR -a POSIX -b 1g \
                -o $TESTDIR/IOR-file -s 1 -t 1m -v -w -r 1>$LOG &
-    load_pid=$!
-    wait $load_pid
-    if [ ${PIPESTATUS[0]} -eq 0 ]; then
-        echoerr "$(date +'%F %H:%M:%S'): IOR succeeded"
-        cd $TMP
-        rm -rf $TESTDIR
-        echoerr "$(date +'%F %H:%M:%S'): IOR run finished"
-    else
-        echoerr "$(date +'%F %H:%M:%S'): IOR failed"
-        if [ -z "$ERRORS_OK" ]; then
-            echo $(hostname) >> $END_RUN_FILE
-        fi
-        if [ $BREAK_ON_ERROR ]; then
-            # break
-            CONTINUE=false
-        fi
-    fi
+
+       load_pid=$!
+       wait $load_pid
+       if [ ${PIPESTATUS[0]} -eq 0 ]; then
+               echoerr "$(date +'%F %H:%M:%S'): IOR succeeded"
+               cd $TMP
+               rm -rf $TESTDIR
+               echoerr "$(date +'%F %H:%M:%S'): IOR run finished"
+       else
+               echoerr "$(date +'%F %H:%M:%S'): IOR failed"
+               if [ -z "$ERRORS_OK" ]; then
+                       echo $(hostname) >> $END_RUN_FILE
+               fi
+               if [ $BREAK_ON_ERROR ]; then
+                       # break
+                       CONTINUE=false
+               fi
+       fi
 done
 
 echoerr "$(date +'%F %H:%M:%S'): IOR run exiting"
index b6c2ac1..1872967 100755 (executable)
@@ -29,28 +29,31 @@ TESTDIR=$MOUNT/d0.dbench-$(hostname)
 CONTINUE=true
 
 while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
-    echoerr "$(date +'%F %H:%M:%S'): dbench run starting"
-
-    mkdir -p $TESTDIR
-    rundbench -D $TESTDIR 2 1>$LOG &
-    load_pid=$!
-
-    wait $load_pid
-    if [ ${PIPESTATUS[0]} -eq 0 ]; then
-        echoerr "$(date +'%F %H:%M:%S'): dbench succeeded"
-        cd $TMP
-        rm -rf $TESTDIR
-        echoerr "$(date +'%F %H:%M:%S'): dbench run finished"
-    else
-        echoerr "$(date +'%F %H:%M:%S'): dbench failed"
-        if [ -z "$ERRORS_OK" ]; then
-            echo $(hostname) >> $END_RUN_FILE
-        fi
-        if [ $BREAK_ON_ERROR ]; then
-            # break
-            CONTINUE=false
-        fi
-    fi
+       echoerr "$(date +'%F %H:%M:%S'): dbench run starting"
+
+       mkdir -p $TESTDIR
+
+       sync
+       rundbench -D $TESTDIR 2 1>$LOG &
+       load_pid=$!
+
+       wait $load_pid
+       if [ ${PIPESTATUS[0]} -eq 0 ]; then
+               echoerr "$(date +'%F %H:%M:%S'): dbench succeeded"
+               cd $TMP
+               rm -rf $TESTDIR
+               echoerr "$(date +'%F %H:%M:%S'): dbench run finished"
+       else
+               echoerr "$(date +'%F %H:%M:%S'): dbench failed"
+               if [ -z "$ERRORS_OK" ]; then
+                       echo $(hostname) >> $END_RUN_FILE
+               fi
+
+               if [ $BREAK_ON_ERROR ]; then
+                       # break
+                       CONTINUE=false
+               fi
+       fi
 done
 
 echoerr "$(date +'%F %H:%M:%S'): dbench run exiting"
index 8e1cfdd..6562416 100755 (executable)
@@ -32,6 +32,8 @@ while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
        mkdir -p $TESTDIR
        $LFS setstripe -c -1 $TESTDIR
        cd $TESTDIR
+       sync
+
        # suppress dd xfer stat to workaround buggy coreutils/gettext
        # combination in RHEL5 and OEL5, see BZ 21264
        FREE_SPACE=$($LFS df $TESTDIR|awk '/filesystem summary:/ {print $5}')
index 642303c..6bd7dd4 100755 (executable)
@@ -28,32 +28,36 @@ TESTDIR=$MOUNT/d0.iozone-$(hostname)
 
 CONTINUE=true
 while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
-    echoerr "$(date +'%F %H:%M:%S'): iozone run starting"
-    mkdir -p $TESTDIR
-    cd $TESTDIR
-    iozone -a -M -R -V 0xab -g 100M -q 512k -i0 -i1 -f $TESTDIR/iozone-file 1>$LOG &
-    load_pid=$!
-    wait $load_pid
-    if [ ${PIPESTATUS[0]} -eq 0 ]; then
-        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
-            CONTINUE=false
-        fi
-        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
-            CONTINUE=false
-        fi
-    fi
+       echoerr "$(date +'%F %H:%M:%S'): iozone run starting"
+       mkdir -p $TESTDIR
+       cd $TESTDIR
+
+       sync
+       iozone -a -M -R -V 0xab -g 100M -q 512k -i0 -i1 \
+                                       -f $TESTDIR/iozone-file 1>$LOG &
+       load_pid=$!
+       wait $load_pid
+       if [ ${PIPESTATUS[0]} -eq 0 ]; then
+               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
+                       CONTINUE=false
+               fi
+               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
+                       CONTINUE=false
+               fi
+       fi
 done
 
 echoerr "$(date +'%F %H:%M:%S'): iozone run exiting"
index 823c781..6425dc8 100755 (executable)
@@ -45,6 +45,8 @@ while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do
        fi
 
        cd $TESTDIR
+
+       sync
        do_tar &
        wait $!
        RC=$?