}
run_test 32 "close() notices client eviction; close() after client eviction"
-# Abort recovery before client complete
-test_33a() { # was test_33
- replay_barrier $SINGLEMDS
- createmany -o $DIR/$tfile-%d 100
+test_33a() {
+ createmany -o $DIR/$tfile-%d 10
+ replay_barrier_nosync $SINGLEMDS
fail_abort $SINGLEMDS
- # this file should be gone, because the replay was aborted
- $CHECKSTAT -t file $DIR/$tfile-* && return 3
- unlinkmany $DIR/$tfile-%d 0 100
+ # recreate shouldn't fail
+ createmany -o $DIR/$tfile--%d 10 || return 1
+ rm $DIR/$tfile-* -f
return 0
}
-run_test 33a "abort recovery before client does replay"
+run_test 33a "fid seq shouldn't be reused after abort recovery"
+
+test_33b() {
+ #define OBD_FAIL_SEQ_ALLOC 0x1311
+ do_facet $SINGLEMDS "lctl set_param fail_loc=0x1311"
-# Stale FID sequence bug 15962
-test_33b() { # was test_33a
- replay_barrier $SINGLEMDS
createmany -o $DIR/$tfile-%d 10
+ replay_barrier_nosync $SINGLEMDS
fail_abort $SINGLEMDS
- unlinkmany $DIR/$tfile-%d 0 10
# recreate shouldn't fail
- createmany -o $DIR/$tfile-%d 10 || return 3
- unlinkmany $DIR/$tfile-%d 0 10
+ createmany -o $DIR/$tfile--%d 10 || return 1
+ rm $DIR/$tfile-* -f
return 0
}
-run_test 33b "fid shouldn't be reused after abort recovery"
+run_test 33b "test fid seq allocation"
test_34() {
multiop_bg_pause $DIR/$tfile O_c || return 2
# bug 3462 - simultaneous MDC requests
test_53a() {
+ cancel_lru_locks mdc # cleanup locks from former test cases
mkdir -p $DIR/${tdir}-1
mkdir -p $DIR/${tdir}-2
multiop $DIR/${tdir}-1/f O_c &
run_test 53a "|X| close request while two MDC requests in flight"
test_53b() {
+ cancel_lru_locks mdc # cleanup locks from former test cases
rm -rf $DIR/${tdir}-1 $DIR/${tdir}-2
mkdir -p $DIR/${tdir}-1
run_test 53b "|X| open request while two MDC requests in flight"
test_53c() {
+ cancel_lru_locks mdc # cleanup locks from former test cases
rm -rf $DIR/${tdir}-1 $DIR/${tdir}-2
mkdir -p $DIR/${tdir}-1
kill -USR1 $close_pid
cancel_lru_locks mdc # force the close
+ #bz20647: make sure all pids are exists before failover
+ [ -d /proc/$close_pid ] || error "close_pid doesn't exist"
+ [ -d /proc/$open_pid ] || error "open_pid doesn't exists"
replay_barrier_nodf $SINGLEMDS
fail_nodf $SINGLEMDS
wait $open_pid || return 1
run_test 53d "|X| close reply while two MDC requests in flight"
test_53e() {
+ cancel_lru_locks mdc # cleanup locks from former test cases
rm -rf $DIR/${tdir}-1 $DIR/${tdir}-2
mkdir -p $DIR/${tdir}-1
run_test 53e "|X| open reply while two MDC requests in flight"
test_53f() {
+ cancel_lru_locks mdc # cleanup locks from former test cases
rm -rf $DIR/${tdir}-1 $DIR/${tdir}-2
mkdir -p $DIR/${tdir}-1
kill -USR1 $close_pid
cancel_lru_locks mdc # force the close
+ #bz20647: make sure all pids are exists before failover
+ [ -d /proc/$close_pid ] || error "close_pid doesn't exist"
+ [ -d /proc/$open_pid ] || error "open_pid doesn't exists"
replay_barrier_nodf $SINGLEMDS
fail_nodf $SINGLEMDS
wait $open_pid || return 1
run_test 53f "|X| open reply and close reply while two MDC requests in flight"
test_53g() {
+ cancel_lru_locks mdc # cleanup locks from former test cases
rm -rf $DIR/${tdir}-1 $DIR/${tdir}-2
mkdir -p $DIR/${tdir}-1
do_facet $SINGLEMDS "lctl set_param fail_loc=0x80000115"
kill -USR1 $close_pid
cancel_lru_locks mdc # force the close
-
do_facet $SINGLEMDS "lctl set_param fail_loc=0"
+
+ #bz20647: make sure all pids are exists before failover
+ [ -d /proc/$close_pid ] || error "close_pid doesn't exist"
+ [ -d /proc/$open_pid ] || error "open_pid doesn't exists"
replay_barrier_nodf $SINGLEMDS
fail_nodf $SINGLEMDS
wait $open_pid || return 1
run_test 53g "|X| drop open reply and close request while close and open are both in flight"
test_53h() {
+ cancel_lru_locks mdc # cleanup locks from former test cases
rm -rf $DIR/${tdir}-1 $DIR/${tdir}-2
mkdir -p $DIR/${tdir}-1
cancel_lru_locks mdc # force the close
sleep 1
+ #bz20647: make sure all pids are exists before failover
+ [ -d /proc/$close_pid ] || error "close_pid doesn't exist"
+ [ -d /proc/$open_pid ] || error "open_pid doesn't exists"
replay_barrier_nodf $SINGLEMDS
fail_nodf $SINGLEMDS
wait $open_pid || return 1
CONN1=$(lctl get_param -n osc.*.stats | awk '/_connect/ {total+=$2} END {print total}')
# exhaust precreations on ost1
- local OST=$(lfs osts | grep 0": " | awk '{print $2}' | sed -e 's/_UUID$//')
+ local OST=$(lfs osts | grep ^0": " | awk '{print $2}' | sed -e 's/_UUID$//')
local mdtosc=$(get_mdtosc_proc_path $OST)
local last_id=$(do_facet mds lctl get_param -n osc.$mdtosc.prealloc_last_id)
local next_id=$(do_facet mds lctl get_param -n osc.$mdtosc.prealloc_next_id)
}
run_test 85 "ensure there is no reply on bulk write if obd is in rdonly mode"
+test_86() {
+ umount $MOUNT
+ do_facet $SINGLEMDS lctl set_param mdt.${FSNAME}-MDT*.exports.clear=0
+ remount_facet $SINGLEMDS
+}
+run_test 86 "umount server after clear nid_stats should not hit LBUG"
+
equals_msg `basename $0`: test complete, cleaning up
check_and_cleanup_lustre
[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true