Whamcloud - gitweb
b=24239 use SAMPLE_FILE instead of termcap
[fs/lustre-release.git] / lustre / tests / recovery-small.sh
index f4745eb..cb75978 100755 (executable)
@@ -2,23 +2,17 @@
 
 set -e
 
-#         bug  5494 7288 5493
-ALWAYS_EXCEPT="24   27   52 $RECOVERY_SMALL_EXCEPT"
+#         bug  5494 5493
+ALWAYS_EXCEPT="24   52 $RECOVERY_SMALL_EXCEPT"
 
 PTLDEBUG=${PTLDEBUG:--1}
 LUSTRE=${LUSTRE:-`dirname $0`/..}
 . $LUSTRE/tests/test-framework.sh
 init_test_env $@
 . ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+init_logging
 
-if [ "$FAILURE_MODE" = "HARD" ] && mixed_ost_devs; then
-    CONFIG_EXCEPTIONS="52"
-    echo -n "Several ost services on one ost node are used with FAILURE_MODE=$FAILURE_MODE. "
-    echo "Except the tests: $CONFIG_EXCEPTIONS"
-    ALWAYS_EXCEPT="$ALWAYS_EXCEPT $CONFIG_EXCEPTIONS"
-fi
-
-remote_mds_nodsh && skip "remote MDS with nodsh" && exit 0
+require_dsh_mds || exit 0
 
 # also long tests: 19, 21a, 21e, 21f, 23, 27
 #                                   1  2.5  2.5    4    4          (min)"
@@ -227,7 +221,7 @@ test_17() {
     # OST bulk will time out here, client retries
     do_facet ost1 lctl set_param fail_loc=0x80000503
     # need to ensure we send an RPC
-    do_facet client cp /etc/termcap $DIR/$tfile
+    do_facet client cp $SAMPLE_FILE $DIR/$tfile
     sync
 
     # with AT, client will wait adaptive_max*factor+net_latency before
@@ -237,7 +231,7 @@ test_17() {
     do_facet ost1 lctl set_param fail_loc=0
     do_facet client "df $DIR"
     # expect cmp to succeed, client resent bulk
-    do_facet client "cmp /etc/termcap $DIR/$tfile" || return 3
+    do_facet client "cmp $SAMPLE_FILE $DIR/$tfile" || return 3
     do_facet client "rm $DIR/$tfile" || return 4
     [ $at_max_saved -ne 0 ] && at_max_set $at_max_saved ost1
     return 0
@@ -658,6 +652,11 @@ test_26a() {      # was test_26 bug 5921 - evict dead exports by pinger
        remote_ost_nodsh && skip "remote OST with nodsh" && return 0
        remote_mds || { skip "local MDS" && return 0; }
 
+        if [ $(facet_host mgs) = $(facet_host ost1) ]; then
+                skip "msg and ost1 are at the same node"
+                return 0
+        fi
+
        check_timeout || return 1
 
        local OST_NEXP=$(do_facet ost1 lctl get_param -n obdfilter.${ost1_svc}.num_exports | cut -d' ' -f2)
@@ -680,9 +679,15 @@ run_test 26a "evict dead exports"
 test_26b() {      # bug 10140 - evict dead exports by pinger
        remote_ost_nodsh && skip "remote OST with nodsh" && return 0
 
+        if [ $(facet_host mgs) = $(facet_host ost1) ]; then
+                skip "msg and ost1 are at the same node"
+                return 0
+        fi
+
        check_timeout || return 1
        clients_up
-       zconf_mount `hostname` $MOUNT2 || error "Failed to mount $MOUNT2"
+       zconf_mount `hostname` $MOUNT2 ||
+                { error "Failed to mount $MOUNT2"; return 2; }
        sleep 1 # wait connections being established
 
        local MDS_NEXP=$(do_facet $SINGLEMDS lctl get_param -n mdt.${mds1_svc}.num_exports | cut -d' ' -f2)
@@ -720,12 +725,8 @@ test_27() {
 #define OBD_FAIL_OSC_SHUTDOWN            0x407
        do_facet $SINGLEMDS lctl set_param fail_loc=0x80000407
        # need to wait for reconnect
-       echo -n waiting for fail_loc
-       while [ $(do_facet $SINGLEMDS lctl get_param -n fail_loc) -eq -2147482617 ]; do
-           sleep 1
-           echo -n .
-       done
-       do_facet $SINGLEMDS lctl get_param -n fail_loc
+       echo waiting for fail_loc
+       wait_update_facet $SINGLEMDS "lctl get_param -n fail_loc" "-2147482617"
        facet_failover $SINGLEMDS
        #no crashes allowed!
         kill -USR1 $CLIENT_PID
@@ -747,6 +748,26 @@ test_28() {      # bug 6086 - error adding new clients
 }
 run_test 28 "handle error adding new clients (bug 6086)"
 
+test_29a() { # bug 22273 - error adding new clients
+       #define OBD_FAIL_TGT_CLIENT_ADD 0x711
+       do_facet $SINGLEMDS "lctl set_param fail_loc=0x80000711"
+       # fail abort so client will be new again
+       fail_abort $SINGLEMDS
+       client_up || error "reconnect failed"
+       return 0
+}
+run_test 29a "error adding new clients doesn't cause LBUG (bug 22273)"
+
+test_29b() { # bug 22273 - error adding new clients
+       #define OBD_FAIL_TGT_CLIENT_ADD 0x711
+       do_facet ost1 "lctl set_param fail_loc=0x80000711"
+       # fail abort so client will be new again
+       fail_abort ost1
+       client_up || error "reconnect failed"
+       return 0
+}
+run_test 29b "error adding new clients doesn't cause LBUG (bug 22273)"
+
 test_50() {
        mkdir -p $DIR/$tdir
        # put a load of file creates/writes/deletes
@@ -773,6 +794,9 @@ test_50() {
 run_test 50 "failover MDS under load"
 
 test_51() {
+       #define OBD_FAIL_MDS_SYNC_CAPA_SL                    0x1310
+       do_facet ost1 lctl set_param fail_loc=0x00001310
+
        mkdir -p $DIR/$tdir
        # put a load of file creates/writes/deletes
        writemany -q $DIR/$tdir/$tfile 0 5 &
@@ -1048,7 +1072,9 @@ run_test 60 "Add Changelog entries during MDS failover"
 
 test_61()
 {
-       local cflags='osc.*-OST0000-osc-MDT*.connect_flags'
+       local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $FSNAME-OST0000)
+       mdtosc=${mdtosc/-MDT*/-MDT\*}
+       local cflags="osc.$mdtosc.connect_flags"
        do_facet $SINGLEMDS "lctl get_param -n $cflags" |grep -q skip_orphan
        [ $? -ne 0 ] && skip "don't have skip orphan feature" && return
 
@@ -1058,12 +1084,12 @@ test_61()
 
        replay_barrier $SINGLEMDS
        createmany -o $DIR/$tdir/$tfile-%d 10 
-       local oid=`do_facet ost1 "lctl get_param -n obdfilter.*OST0000.last_id"`
+       local oid=`do_facet ost1 "lctl get_param -n obdfilter.${ost1_svc}.last_id"`
 
        fail_abort $SINGLEMDS
        
        touch $DIR/$tdir/$tfile
-       local id=`$LFS getstripe $DIR/$tdir/$tfile |awk '$2 ~ /^[1-9]+/ {print $2}'`
+       local id=`$LFS getstripe $DIR/$tdir/$tfile |awk '($1 ~ 0 && $2 ~ /^[1-9]+/) {print $2}'`
        [ $id -le $oid ] && error "the orphan objid was reused, failed"
 
        # Cleanup