From 5a9f589c3c13a8efb6801c4f75f581fff52eff2c Mon Sep 17 00:00:00 2001 From: wangdi Date: Wed, 14 Nov 2012 12:42:22 -0800 Subject: [PATCH] LU-1187 tests: Add DNE tests into recovery-small. Add DNE tests in recovery-small 110[a-f]. Change-Id: I80a6d02b65bcd55fce9938be6251dd7e9cfbe802 Signed-off-by: Wang Di Reviewed-on: http://review.whamcloud.com/4360 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Alex Zhuravlev --- lustre/tests/recovery-small.sh | 94 ++++++++++++++++++++++++++++++++++++++++++ lustre/tests/test-framework.sh | 11 +++++ 2 files changed, 105 insertions(+) diff --git a/lustre/tests/recovery-small.sh b/lustre/tests/recovery-small.sh index d1e51f8..89b336f 100755 --- a/lustre/tests/recovery-small.sh +++ b/lustre/tests/recovery-small.sh @@ -903,6 +903,7 @@ test_29a() { # bug 22273 - error adding new clients # fail abort so client will be new again fail_abort $SINGLEMDS client_up || error "reconnect failed" + wait_osc_import_state mds ost FULL return 0 } run_test 29a "error adding new clients doesn't cause LBUG (bug 22273)" @@ -1643,6 +1644,99 @@ test_107 () { return $rc } run_test 107 "drop reint reply, then restart MDT" + +test_110a () { + [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0 + local remote_dir=$DIR/$tdir/remote_dir + local MDTIDX=1 + + mkdir -p $DIR/$tdir + drop_request "$LFS mkdir -i $MDTIDX $remote_dir" || + error "lfs mkdir failed" + local diridx=$($GETSTRIPE -M $remote_dir) + [ $diridx -eq $MDTIDX ] || error "$diridx != $MDTIDX" + + rm -rf $DIR/$tdir || error "rmdir failed" +} +run_test 110a "create remote directory: drop client req" + +test_110b () { + [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0 + local remote_dir=$DIR/$tdir/remote_dir + local MDTIDX=1 + + mkdir -p $DIR/$tdir + drop_reint_reply "$LFS mkdir -i $MDTIDX $remote_dir" || + error "lfs mkdir failed" + + diridx=$($GETSTRIPE -M $remote_dir) + [ $diridx -eq $MDTIDX ] || error "$diridx != $MDTIDX" + + rm -rf $DIR/$tdir || error "rmdir failed" +} +run_test 110b "create remote directory: drop Master rep" + +test_110c () { + [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0 + local remote_dir=$DIR/$tdir/remote_dir + local MDTIDX=1 + + mkdir -p $DIR/$tdir + drop_update_reply $((MDTIDX + 1)) "$LFS mkdir -i $MDTIDX $remote_dir" || + error "lfs mkdir failed" + + diridx=$($GETSTRIPE -M $remote_dir) + [ $diridx -eq $MDTIDX ] || error "$diridx != $MDTIDX" + + rm -rf $DIR/$tdir || error "rmdir failed" +} +run_test 110c "create remote directory: drop update rep on slave MDT" + +test_110d () { + [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0 + local remote_dir=$DIR/$tdir/remote_dir + local MDTIDX=1 + + mkdir -p $DIR/$tdir + $LFS mkdir -i $MDTIDX $remote_dir || error "lfs mkdir failed" + + drop_request "rm -rf $remote_dir" || error "rm remote dir failed" + + rm -rf $DIR/$tdir || error "rmdir failed" + + return 0 +} +run_test 110d "remove remote directory: drop client req" + +test_110e () { + [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0 + local remote_dir=$DIR/$tdir/remote_dir + local MDTIDX=1 + + mkdir -p $DIR/$tdir + $LFS mkdir -i $MDTIDX $remote_dir || error "lfs mkdir failed" + drop_reint_reply "rm -rf $remote_dir" || error "rm remote dir failed" + + rm -rf $DIR/$tdir || error "rmdir failed" + + return 0 +} +run_test 110e "remove remote directory: drop master rep" + +test_110f () { + [ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0 + local remote_dir=$DIR/$tdir/remote_dir + local MDTIDX=1 + + mkdir -p $DIR/$tdir + $LFS mkdir -i $MDTIDX $remote_dir || error "lfs mkdir failed" + drop_update_reply $MDTIDX "rm -rf $remote_dir" || + error "rm remote dir failed" + + rm -rf $DIR/$tdir || error "rmdir failed" +} +run_test 110f "remove remote directory: drop slave rep" + complete $SECONDS check_and_cleanup_lustre exit_status diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 994d357..1531c5d 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -3772,6 +3772,17 @@ drop_reint_reply() { return $RC } +drop_update_reply() { +# OBD_FAIL_MDS_OBJ_UPDATE_NET + local index=$1 + shift 1 + RC=0 + do_facet mds${index} lctl set_param fail_loc=0x188 + do_facet client "$@" || RC=$? + do_facet mds${index} lctl set_param fail_loc=0 + return $RC +} + pause_bulk() { #define OBD_FAIL_OST_BRW_PAUSE_BULK 0x214 RC=0 -- 1.8.3.1