}
run_test 143 "orphan cleanup thread shouldn't be blocked even delete failed"
+test_144a() {
+ [[ $($LCTL get_param mdc.*.import) =~ connect_flags.*overstriping ]] ||
+ skip "server does not support overstriping"
+
+ local pids=""
+ local setcount=1000
+ local mds_timeout
+ local before
+ local after
+ local diff
+
+ large_xattr_enabled || skip_env "ea_inode feature disabled"
+ test_mkdir -i 0 -c 1 -p $DIR/$tdir
+ stack_trap "rm -rf $DIR/$tdir" EXIT
+
+ mds_timeout=$(do_facet mds1 $LCTL get_param -n timeout)
+ do_nodes $(comma_list $(mdts_nodes)) $LCTL set_param timeout=300
+ stack_trap "do_nodes $(comma_list $(mdts_nodes)) $LCTL set_param timeout=$mds_timeout" EXIT
+
+ $LFS setstripe -i 0 -C $setcount $DIR/$tdir || error "setstripe failed"
+
+ for (( i = 0; i < 50; i++)); do
+ touch $DIR/$tdir/$tfile_$i &
+ pids="$pids $!"
+ done
+
+ fail ost1
+ sleep 60
+
+ for pid in $pids; do
+ kill -9 $pid >/dev/null 2>&1
+ done
+
+ before=$(date +%s)
+ fail mds1
+ after=$(date +%s)
+ # here we measure MDT stop + MDT start time. For error case MDT stop takes
+ # about obd_timeout-60 (240) seconds. Without error - less than 30s.
+ # MDT start takes different time depends on a configuration, let's check
+ # the worst.
+ diff=$((after - before))
+ (( $diff < 240 )) || error "MDT failover took $diff seconds"
+}
+run_test 144a "MDT failover should stop precreation threads"
+
test_145() {
[ $MDSCOUNT -lt 3 ] && skip "needs >= 3 MDTs"
[ $(facet_active_host mds2) = $(facet_active_host mds3) ] &&