do_node $CLIENT1 mkdir -p $MOUNT1/${tdir}
# OBD_FAIL_MDS_REINT_NET_REP 0x119
- do_facet mds${MDTIDX} lctl set_param fail_loc=0x119
+ do_facet mds$((MDTIDX + 1)) lctl set_param fail_loc=0x119
do_node $CLIENT1 $LFS mkdir -i $MDTIDX $MOUNT1/$remote_dir &
CLIENT_PID=$!
- fail mds${MDTIDX}
+ fail mds$((MDTIDX + 1))
wait $CLIENT_PID || error "lfs mkdir failed"
- replay_barrier mds${MDTIDX}
+ replay_barrier mds$MDTIDX
create_remote_dir_files_22 || error "Remote creation failed $?"
- fail mds${MDTIDX}
+ fail mds$MDTIDX
checkstat_22 || error "check stat failed $?"
rm -rf $MOUNT1/$tdir || error "rmdir remote_dir failed"
return 0
}
-run_test 22a "c1 lfs mkdir -i 1 dir1, M0 drop reply & fail, c2 mkdir dir1/dir"
+run_test 22a "c1 lfs mkdir -i 1 dir1, M1 drop reply & fail, c2 mkdir dir1/dir"
test_22b () {
[ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0
# OBD_FAIL_MDS_REINT_NET_REP 0x119
do_node $CLIENT1 mkdir -p $MOUNT1/${tdir}
- do_facet mds${MDTIDX} lctl set_param fail_loc=0x119
+ do_facet mds$((MDTIDX + 1)) lctl set_param fail_loc=0x119
do_node $CLIENT1 $LFS mkdir -i $MDTIDX $MOUNT1/$remote_dir &
CLIENT_PID=$!
rm -rf $MOUNT1/$tdir || error "rmdir remote_dir failed"
return 0
}
-run_test 22b "c1 lfs mkdir -i 1 d1, M0 drop reply & fail M0/M1, c2 mkdir d1/dir"
+run_test 22b "c1 lfs mkdir -i 1 d1, M1 drop reply & fail M0/M1, c2 mkdir d1/dir"
test_22c () {
[ $MDSCOUNT -lt 2 ] && skip "needs >= 2 MDTs" && return 0
do_node $CLIENT1 mkdir -p $MOUNT1/${tdir}
# OBD_FAIL_UPDATE_OBJ_NET_REP 0x1701
- do_facet mds$((MDTIDX + 1)) lctl set_param fail_loc=0x1701
+ do_facet mds$MDTIDX lctl set_param fail_loc=0x1701
do_node $CLIENT1 $LFS mkdir -i $MDTIDX $MOUNT1/$remote_dir &
CLIENT_PID=$!
- do_facet mds$((MDTIDX + 1)) lctl set_param fail_loc=0
+ do_facet mds$MDTIDX lctl set_param fail_loc=0
- fail mds$((MDTIDX+1))
+ fail mds$MDTIDX
wait $CLIENT_PID || error "lfs mkdir failed"
replay_barrier mds$MDTIDX
do_node $CLIENT1 mkdir -p $MOUNT1/${tdir}
# OBD_FAIL_UPDATE_OBJ_NET_REP 0x1701
- do_facet mds$((MDTIDX + 1)) lctl set_param fail_loc=0x1701
+ do_facet mds$MDTIDX lctl set_param fail_loc=0x1701
do_node $CLIENT1 $LFS mkdir -i $MDTIDX $MOUNT1/$remote_dir &
CLIENT_PID=$!
- do_facet mds$((MDTIDX + 1)) lctl set_param fail_loc=0
+ do_facet mds$MDTIDX lctl set_param fail_loc=0
fail mds${MDTIDX},mds$((MDTIDX + 1))
wait $CLIENT_PID || error "lfs mkdir failed"
# end commit on sharing tests
+test_24() {
+ cancel_lru_locks osc
+
+ $SETSTRIPE -i 0 -c 1 $DIR/$tfile
+
+ # get lock for the 1st client
+ dd if=/dev/zero of=$DIR/$tfile count=1 >/dev/null ||
+ error "failed to write data"
+
+ # get waiting locks for the 2nd client
+ drop_ldlm_cancel "multiop $DIR2/$tfile Ow512" &
+ sleep 1
+
+#define OBD_FAIL_OST_LDLM_REPLY_NET 0x213
+ # failover, replay and resend replayed waiting locks
+ do_facet ost1 lctl set_param fail_loc=0x80000213
+ fail ost1
+
+ # multiop does not finish because CP AST is skipped;
+ # it is ok to kill it in the test, because CP AST is already re-sent
+ # and it does not hung forever in real life
+ killall multiop
+ wait
+}
+run_test 24 "replay|resend"
+
complete $SECONDS
SLEEP=$((`date +%s` - $NOW))
[ $SLEEP -lt $TIMEOUT ] && sleep $SLEEP