Whamcloud - gitweb
b=13534
[fs/lustre-release.git] / lustre / tests / replay-single.sh
index c969222..9b8be16 100755 (executable)
@@ -6,52 +6,24 @@ set -e
 #
 # This test needs to be run on the client
 #
-
+SAVE_PWD=$PWD
 LUSTRE=${LUSTRE:-`dirname $0`/..}
+SETUP=${SETUP:-}
+CLEANUP=${CLEANUP:-}
 . $LUSTRE/tests/test-framework.sh
 init_test_env $@
 . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+CHECK_GRANT=${CHECK_GRANT:-"yes"}
+GRANT_CHECK_LIST=${GRANT_CHECK_LIST:-""}
 
 
 # Skip these tests
 # bug number: 2766 4176
 ALWAYS_EXCEPT="0b  39   $REPLAY_SINGLE_EXCEPT"
 
-gen_config() {
-    rm -f $XMLCONFIG
-    add_mds $SINGLEMDS --dev $MDSDEV --size $MDSSIZE
-    if [ ! -z "$mdsfailover_HOST" ]; then
-        add_mdsfailover $SINGLEMDS --dev $MDSDEV --size $MDSSIZE
-    fi
-    
-    add_lov lov1 $SINGLEMDS --stripe_sz $STRIPE_BYTES \
-       --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
-    add_ost ost --lov lov1 --dev `ostdevname 1` --size $OSTSIZE
-    add_ost ost2 --lov lov1 --dev `ostdevname 2` --size $OSTSIZE
-    add_client client $SINGLEMDS --lov lov1 --path $MOUNT
-}
-
 build_test_filter
 
-SETUP=${SETUP:-"setup"}
-CLEANUP=${CLEANUP:-"cleanupall"}
-
-if [ "$ONLY" == "cleanup" ]; then
-    sysctl -w lnet.debug=0 || true
-    $CLEANUP
-    exit 0
-fi
-
-setup() {
-    [ "$REFORMAT" ] && formatall
-    setupall
-}
-
-$SETUP
-
-if [ "$ONLY" == "setup" ]; then
-    exit 0
-fi
+cleanup_and_setup_lustre
 
 mkdir -p $DIR
 
@@ -161,7 +133,7 @@ test_2a() {
 run_test 2a "touch"
 
 test_2b() {
-    ./mcreate $DIR/$tfile
+    mcreate $DIR/$tfile
     replay_barrier $SINGLEMDS
     touch $DIR/$tfile
     fail $SINGLEMDS
@@ -502,7 +474,7 @@ test_20b() { # bug 10480
 
     fail $SINGLEMDS                            # start orphan recovery
     df -P $DIR || df -P $DIR || true    # reconnect
-    sleep 2
+    wait_mds_recovery_done || error "MDS recovery not done"
 
     AFTERUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
     log "before $BEFOREUSED, after $AFTERUSED"
@@ -513,9 +485,10 @@ test_20b() { # bug 10480
 run_test 20b "write, unlink, eviction, replay, (test mds_cleanup_orphans)"
 
 test_20c() { # bug 10480
-    dd if=/dev/zero of=$DIR/$tfile bs=4k count=10000
-
-    exec 100< $DIR/$tfile
+    multiop $DIR/$tfile Ow_c &
+    pid=$!
+    # give multiop a chance to open
+    sleep 1
 
     ls -la $DIR/$tfile
 
@@ -523,8 +496,7 @@ test_20c() { # bug 10480
 
     df -P $DIR || df -P $DIR || true    # reconnect
 
-    exec 100<&-
-
+    kill -USR1 $pid
     test -s $DIR/$tfile || error "File was truncated"
 
     return 0
@@ -930,6 +902,10 @@ run_test 40 "cause recovery in ptlrpc, ensure IO continues"
 # the page, guarnateeing that the unlock from the RPC completion would
 # assert on trying to unlock the unlocked page.
 test_41() {
+    [ $OSTCOUNT -lt 2 ] && \
+       skip "skipping test 41: we don't have a second OST to test with" && \
+       return
+
     local f=$MOUNT/$tfile
     # make sure the start of the file is ost1
     lfs setstripe $f $((128 * 1024)) 0 0 
@@ -951,7 +927,7 @@ test_42() {
     createmany -o $DIR/$tfile-%d 800
     replay_barrier ost1
     unlinkmany $DIR/$tfile-%d 0 400
-    DEBUG42=`sysctl -n lnet.debug`
+    debugsave
     sysctl -w lnet.debug=-1
     facet_failover ost1
     
@@ -960,7 +936,7 @@ test_42() {
     #[ $blocks_after -lt $blocks ] || return 1
     echo wait for MDS to timeout and recover
     sleep $((TIMEOUT * 2))
-    sysctl -w lnet.debug="$DEBUG42"
+    debugrestore
     unlinkmany $DIR/$tfile-%d 400 400
     $CHECKSTAT -t file $DIR/$tfile-* && return 2 || true
 }
@@ -1085,9 +1061,10 @@ test_48() {
 run_test 48 "MDS->OSC failure during precreate cleanup (2824)"
 
 test_50() {
-    local oscdev=`grep ${ost1_svc}-osc-MDT0000 $LPROC/devices | awk '{print $1}'`
+    local oscdev=`do_facet $SINGLEMDS grep ${ost1_svc}-osc-MDT0000 $LPROC/devices | awk '{print $1}'`
     [ "$oscdev" ] || return 1
-    $LCTL --device $oscdev recover &&  $LCTL --device $oscdev recover
+    do_facet $SINGLEMDS $LCTL --device $oscdev recover || return 2
+    do_facet $SINGLEMDS $LCTL --device $oscdev recover || return 3
     # give the mds_lov_sync threads a chance to run
     sleep 5
 }
@@ -1197,4 +1174,5 @@ test_60() {
 run_test 60 "test llog post recovery init vs llog unlink"
 
 equals_msg `basename $0`: test complete, cleaning up
-$CLEANUP
+check_and_cleanup_lustre
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true