Whamcloud - gitweb
LU-5810 tests: add client hostname to lctl mark
[fs/lustre-release.git] / lustre / tests / recovery-small.sh
index 976ecf6..a36eeb1 100755 (executable)
@@ -16,8 +16,8 @@ init_logging
 require_dsh_mds || exit 0
 
 # also long tests: 19, 21a, 21e, 21f, 23, 27
-#                                   1  2.5  2.5    4    4          (min)"
-[ "$SLOW" = "no" ] && EXCEPT_SLOW="17  26a  26b    50   51     57"
+
+[ "$SLOW" = "no" ] && EXCEPT_SLOW=""
 
 [ $(facet_fstype $SINGLEMDS) = "zfs" ] &&
 # bug number for skipped test:       LU-2547
@@ -308,7 +308,7 @@ run_test 11 "wake up a thread waiting for completion after eviction (b=2460)"
 
 #b=2494
 test_12(){
-       $LCTL mark $MULTIOP $DIR/$tfile OS_c
+       $LCTL mark "$HOSTNAME: $MULTIOP $DIR/$tfile OS_c"
        do_facet $SINGLEMDS "lctl set_param fail_loc=0x115"
        clear_failloc $SINGLEMDS $((TIMEOUT * 2)) &
        multiop_bg_pause $DIR/$tfile OS_c ||
@@ -2256,6 +2256,10 @@ T130_PID=0
 test_130_base() {
        test_mkdir -p $DIR/$tdir
 
+       # Prevent interference from layout intent RPCs due to
+       # asynchronous writeback. These will be tested in 130c below.
+       do_nodes ${CLIENTS:-$HOSTNAME} sync
+
        # get only LOOKUP lock on $tdir
        cancel_lru_locks mdc
        ls $DIR/$tdir/$tfile 2>/dev/null
@@ -2302,6 +2306,44 @@ test_130b() {
 }
 run_test 130b "enqueue resend on a stale inode"
 
+test_130c() {
+       remote_mds_nodsh && skip "remote MDS with nodsh" && return
+
+       do_nodes ${CLIENTS:-$HOSTNAME} sync
+       echo XXX > $DIR/$tfile
+
+       cancel_lru_locks mdc
+
+       # Trigger writeback on $tfile.
+       #
+       # we need to race with unlink, unlink must complete before we will
+       # take a DLM lock, otherwise unlink will wait until intent will
+       # complete; but later than intent starts so that intent found
+       # the object
+#define OBD_FAIL_MDS_INTENT_DELAY              0x160
+       set_nodes_failloc "$(mdts_nodes)" 0x80000160
+       sync &
+       T130_PID=$!
+       sleep 2
+
+       rm $DIR/$tfile
+
+       # drop the reply so that resend happens on an unlinked file.
+#define OBD_FAIL_MDS_LDLM_REPLY_NET     0x157
+       set_nodes_failloc "$(mdts_nodes)" 0x80000157
+
+       # let the reply to be dropped
+       sleep 10
+
+#define OBD_FAIL_SRV_ENOENT              0x217
+       set_nodes_failloc "$(mdts_nodes)" 0x80000217
+
+       wait $T130_PID
+
+       return 0
+}
+run_test 130c "layout intent resend on a stale inode"
+
 complete $SECONDS
 check_and_cleanup_lustre
 exit_status