X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Frun_tar.sh;h=0ea2ce9af47b81356bbd80336672b558209efb45;hb=60eb5d53967413ce335cf0cfa38612dee3dfb586;hp=f46b874ff2577b1e62061b124bc966e192dffe3d;hpb=a60af3e3f896351dfb463c6b87a6f9f2489b4551;p=fs%2Flustre-release.git diff --git a/lustre/tests/run_tar.sh b/lustre/tests/run_tar.sh index f46b874..0ea2ce9 100755 --- a/lustre/tests/run_tar.sh +++ b/lustre/tests/run_tar.sh @@ -17,7 +17,7 @@ set -x . $(dirname $0)/functions.sh -assert_env MOUNT END_RUN_FILE LOAD_PID_FILE +assert_env MOUNT END_RUN_FILE LOAD_PID_FILE LFS CLIENT_COUNT LCTL trap signaled TERM @@ -33,32 +33,45 @@ do_tar() { CONTINUE=true while [ ! -e "$END_RUN_FILE" ] && $CONTINUE; do - echoerr "$(date +'%F %H:%M:%S'): tar run starting" - mkdir -p $TESTDIR - cd $TESTDIR - do_tar & - wait $! - RC=$? - PREV_ERRORS=$(grep "exit delayed from previous errors" $LOG) || true - if [ $RC -ne 0 -a "$ERRORS_OK" -a "$PREV_ERRORS" ]; then - echoerr "$(date +'%F %H:%M:%S'): tar errors earlier, ignoring" - RC=0 - fi - if [ $RC -eq 0 ]; then - echoerr "$(date +'%F %H:%M:%S'): tar succeeded" - cd $TMP - rm -rf $TESTDIR - echoerr "$(date +'%F %H:%M:%S'): tar run finished" - else - echoerr "$(date +'%F %H:%M:%S'): tar 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'): tar run starting" + mkdir -p $TESTDIR + cd $TESTDIR + sync + + USAGE=$(du -s /etc | awk '{print $1}') + $LCTL set_param llite.*.lazystatfs=0 + df $TESTDIR || true + sleep 2 + FREE_SPACE=$(df $TESTDIR | awk '/:/ { print $4 }') + AVAIL=$((FREE_SPACE * 9 / 10 / CLIENT_COUNT)) + if [ $AVAIL -lt $USAGE ]; then + echoerr "no enough free disk space: need $USAGE, avail $AVAIL" + echo $(hostname) >> $END_RUN_FILE + break + fi + + do_tar + RC=$? + PREV_ERRORS=$(grep "exit delayed from previous errors" $LOG) || true + if [ $RC -ne 0 -a "$ERRORS_OK" -a "$PREV_ERRORS" ]; then + echoerr "$(date +'%F %H:%M:%S'): tar errors earlier, ignoring" + RC=0 + fi + if [ $RC -eq 0 ]; then + echoerr "$(date +'%F %H:%M:%S'): tar succeeded" + cd $TMP + rm -rf $TESTDIR + echoerr "$(date +'%F %H:%M:%S'): tar run finished" + else + echoerr "$(date +'%F %H:%M:%S'): tar 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'): tar run exiting"