Whamcloud - gitweb
LU-11765 ofd: return EAGAIN during 1st CLEANUP_ORPHAN
[fs/lustre-release.git] / lustre / tests / replay-ost-single.sh
index f7d4d4a..9764e6b 100755 (executable)
@@ -439,6 +439,49 @@ test_10() {
 }
 run_test 10 "conflicting PW & PR locks on a client"
 
+test_12() {
+       [ $FAILURE_MODE != "HARD" ] &&
+               skip "Test needs FAILURE_MODE HARD" && return 0
+       remote_ost || { skip "need remote OST" && return 0; }
+
+       local tmp=$TMP/$tdir
+       local dir=$DIR/$tdir
+       declare -a pids
+
+
+       mkdir -p $tmp || error "can't create $tmp"
+       mkdir -p $dir || error "can't create $dir"
+
+       $LFS setstripe -c 1 -i 0 $dir
+
+       for i in `seq 1 10`; do mkdir $dir/d$i; done
+
+       #define OBD_FAIL_OST_DELAY_TRANS        0x245
+       do_facet ost1 "$LCTL set_param fail_loc=0x245" ||
+               error "can't set fail_loc"
+
+       for i in `seq 1 10`;
+       do
+               createmany -o $dir/d$i/$(openssl rand -base64 12) 500 &
+               pids+=($!)
+       done
+       echo "Waiting createmany pids"
+       wait ${pids[@]}
+
+       ls -lR $dir > $tmp/ls_r_out 2>&1&
+       local ls_pid=$!
+
+       facet_failover ost1
+
+       echo "starting wait for ls -l"
+       wait $ls_pid
+       grep "?\|No such file or directory" $tmp/ls_r_out &&
+               error "Found file without object on OST"
+       rm -rf $tmp
+       rm -rf $dir
+}
+run_test 12 "check stat after OST failover"
+
 complete $SECONDS
 check_and_cleanup_lustre
 exit_status