X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Freplay-dual.sh;h=c47082e07ea59531d57b35a045b30d0aca115f76;hb=c7a42267f5740d587f726e610695f1c72818a21e;hp=3eaea5f646fb2d86eba5e41ae7bac53620e0e66b;hpb=efe37534401d6a195f895ebbf7640fdfd595d024;p=fs%2Flustre-release.git diff --git a/lustre/tests/replay-dual.sh b/lustre/tests/replay-dual.sh index 3eaea5f..c47082e 100755 --- a/lustre/tests/replay-dual.sh +++ b/lustre/tests/replay-dual.sh @@ -2,8 +2,8 @@ set -e -# bug number: 13129 13129 10124 -ALWAYS_EXCEPT="2 3 15c $REPLAY_DUAL_EXCEPT" +# bug number: 10124 +ALWAYS_EXCEPT="15c $REPLAY_DUAL_EXCEPT" SAVE_PWD=$PWD PTLDEBUG=${PTLDEBUG:--1} @@ -26,7 +26,7 @@ init_test_env $@ remote_mds_nodsh && skip "remote MDS with nodsh" && exit 0 -[ "$SLOW" = "no" ] && EXCEPT_SLOW="1 2 3 4 5 14" +[ "$SLOW" = "no" ] && EXCEPT_SLOW="21b" build_test_filter @@ -250,7 +250,7 @@ test_13() { } run_test 13 "close resend timeout" -test_14() { +test_14a() { replay_barrier $SINGLEMDS createmany -o $MOUNT1/$tfile- 25 createmany -o $MOUNT2/$tfile-2- 1 @@ -268,7 +268,35 @@ test_14() { zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail" return 0 } -run_test 14 "timeouts waiting for lost client during replay" +run_test 14a "timeouts waiting for lost client during replay" + +test_14b() { + BEFOREUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'` + mkdir -p $MOUNT1/$tdir + replay_barrier $SINGLEMDS + createmany -o $MOUNT1/$tfile- 5 + echo "data" > $MOUNT2/$tdir/$tfile-2 + createmany -o $MOUNT1/$tfile-3- 5 + umount $MOUNT2 + + facet_failover $SINGLEMDS + # expect recovery don't fail due to VBR + df $MOUNT1 || return 1 + + # first 25 files should have been replayed + unlinkmany $MOUNT1/$tfile- 5 || return 2 + unlinkmany $MOUNT1/$tfile-3- 5 || return 3 + + zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail" + # give ost time to process llogs + sleep 3 + AFTERUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'` + log "before $BEFOREUSED, after $AFTERUSED" + [ $AFTERUSED -ne $BEFOREUSED ] && \ + error "after $AFTERUSED > before $BEFOREUSED" && return 4 + return 0 +} +run_test 14b "delete ost orphans if gap occured in objids due to VBR" test_15a() { # was test_15 replay_barrier $SINGLEMDS @@ -436,46 +464,6 @@ test_21a() { } run_test 21a "commit on sharing" -shutdown_client() { - local client=$1 - local mnt=$2 - - if [ "$FAILURE_MODE" = HARD ]; then - $POWER_DOWN $client - while ping -w 3 -c 1 $client > /dev/null 2>&1; do - echo "waiting for node $client to fail" - sleep 1 - done - else - zconf_umount_clients $client $mnt -f - fi -} - -# CMD: determine mds index where directory inode presents -get_mds_dir () { - local dir=$1 - local file=$dir/$tfile - - rm -f $file - local iused=$(lfs df -i $dir | grep MDT | awk '{print $3}') - local oldused=($iused) - - touch $file - sleep 1 - iused=$(lfs df -i $dir | grep MDT | awk '{print $3}') - local newused=($iused) - - local num=0 - for ((i=0; i<${#newused[@]}; i++)); do - if [ ${oldused[$i]} -lt ${newused[$i]} ]; then - echo $(( i + 1 )) - rm -f $dir/$tfile - return 0 - fi - done - error "mdt-s : inodes count OLD ${oldused[@]} NEW ${newused[@]}" -} - test_21b_sub () { local mds=$1 do_node $CLIENT1 rm -f $MOUNT1/$tfile-*