From 58c2a357202ba83d26ba9d8f1d9c093e3272e9a0 Mon Sep 17 00:00:00 2001 From: Hongchao Zhang Date: Tue, 20 May 2014 11:38:52 +0800 Subject: [PATCH] LU-3326 tests: sync after file deleted in run_*.sh 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. Signed-off-by: Hongchao Zhang Change-Id: Ia246122a5c3471b7cbea9cdaa7fad2ea4db856c5 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 Reviewed-on: http://review.whamcloud.com/8071 Tested-by: Jenkins Reviewed-by: Andreas Dilger Reviewed-by: Alex Zhuravlev Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/tests/run_IOR.sh | 44 +++++++++++++++++++----------------- lustre/tests/run_dbench.sh | 47 ++++++++++++++++++++------------------ lustre/tests/run_dd.sh | 2 ++ lustre/tests/run_iozone.sh | 56 +++++++++++++++++++++++++--------------------- lustre/tests/run_tar.sh | 2 ++ 5 files changed, 82 insertions(+), 69 deletions(-) diff --git a/lustre/tests/run_IOR.sh b/lustre/tests/run_IOR.sh index 228926d..4e44df4 100755 --- a/lustre/tests/run_IOR.sh +++ b/lustre/tests/run_IOR.sh @@ -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" diff --git a/lustre/tests/run_dbench.sh b/lustre/tests/run_dbench.sh index b6c2ac1..1872967 100755 --- a/lustre/tests/run_dbench.sh +++ b/lustre/tests/run_dbench.sh @@ -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" diff --git a/lustre/tests/run_dd.sh b/lustre/tests/run_dd.sh index 8e1cfdd..6562416 100755 --- a/lustre/tests/run_dd.sh +++ b/lustre/tests/run_dd.sh @@ -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}') diff --git a/lustre/tests/run_iozone.sh b/lustre/tests/run_iozone.sh index 642303c..6bd7dd4 100755 --- a/lustre/tests/run_iozone.sh +++ b/lustre/tests/run_iozone.sh @@ -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" diff --git a/lustre/tests/run_tar.sh b/lustre/tests/run_tar.sh index 823c781..6425dc8 100755 --- a/lustre/tests/run_tar.sh +++ b/lustre/tests/run_tar.sh @@ -45,6 +45,8 @@ while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do fi cd $TESTDIR + + sync do_tar & wait $! RC=$? -- 1.8.3.1