set -e
-# bug number: 13129 13129 10124
-ALWAYS_EXCEPT="2 3 15c $REPLAY_DUAL_EXCEPT"
+# bug number: 10124
+ALWAYS_EXCEPT="15c $REPLAY_DUAL_EXCEPT"
SAVE_PWD=$PWD
PTLDEBUG=${PTLDEBUG:--1}
remote_mds_nodsh && skip "remote MDS with nodsh" && exit 0
-[ "$SLOW" = "no" ] && EXCEPT_SLOW="1 2 3 4 5 14"
+[ "$SLOW" = "no" ] && EXCEPT_SLOW="21b"
build_test_filter
do_facet $SINGLEMDS lctl set_param fail_loc=0x80000302
facet_failover $SINGLEMDS
do_facet $SINGLEMDS lctl set_param fail_loc=0
- df $MOUNT || return 1
+ clients_up || return 1
ls $DIR/$tfile
kill -USR1 $MULTIPID || return 3
kill -USR1 $MULTIPID || return 3
wait $MULTIPID || return 4
- # drop close
+ # drop close
do_facet $SINGLEMDS lctl set_param fail_loc=0x80000115
facet_failover $SINGLEMDS
do_facet $SINGLEMDS lctl set_param fail_loc=0
- df $MOUNT || return 1
+ clients_up || return 1
ls $DIR/$tfile
$CHECKSTAT -t file $DIR/$tfile || return 2
}
run_test 13 "close resend timeout"
-test_14() {
+test_14a() {
replay_barrier $SINGLEMDS
createmany -o $MOUNT1/$tfile- 25
createmany -o $MOUNT2/$tfile-2- 1
facet_failover $SINGLEMDS
# expect failover to fail due to missing client 2
- df $MOUNT && return 1
+ client_evicted || return 1
sleep 1
# first 25 files should have been replayed
zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
return 0
}
-run_test 14 "timeouts waiting for lost client during replay"
+run_test 14a "timeouts waiting for lost client during replay"
-test_15a() { # was test_15
+test_14b() {
+ BEFOREUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
+ mkdir -p $MOUNT1/$tdir
+ replay_barrier $SINGLEMDS
+ createmany -o $MOUNT1/$tfile- 5
+ echo "data" > $MOUNT2/$tdir/$tfile-2
+ createmany -o $MOUNT1/$tfile-3- 5
+ umount $MOUNT2
+
+ fail $SINGLEMDS
+ wait_recovery_complete $SINGLEMDS || error "MDS recovery not done"
+
+ # first 25 files should have been replayed
+ unlinkmany $MOUNT1/$tfile- 5 || return 2
+ unlinkmany $MOUNT1/$tfile-3- 5 || return 3
+
+ zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
+
+ wait_mds_ost_sync || return 4
+ wait_destroy_complete || return 5
+
+ AFTERUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
+ log "before $BEFOREUSED, after $AFTERUSED"
+ [ $AFTERUSED -ne $BEFOREUSED ] && \
+ error "after $AFTERUSED > before $BEFOREUSED" && return 4
+ return 0
+}
+run_test 14b "delete ost orphans if gap occured in objids due to VBR"
+
+test_15a() { # was test_15
replay_barrier $SINGLEMDS
createmany -o $MOUNT1/$tfile- 25
createmany -o $MOUNT2/$tfile-2- 1
umount $MOUNT2
- facet_failover $SINGLEMDS
- df $MOUNT || return 1
+ fail $SINGLEMDS
unlinkmany $MOUNT1/$tfile- 25 || return 2
[ -e $MOUNT1/$tfile-2-0 ] && error "$tfile-2-0 exists"
test_15c() {
replay_barrier $SINGLEMDS
for ((i = 0; i < 2000; i++)); do
- echo "data" > "$MOUNT2/${tfile}-$i" || error "create ${tfile}-$i failed"
+ echo "data" > "$MOUNT2/${tfile}-$i" || error "create ${tfile}-$i failed"
done
-
umount $MOUNT2
- facet_failover $SINGLEMDS
- df $MOUNT || return 1
-
+ fail $SINGLEMDS
+
zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
return 0
}
facet_failover $SINGLEMDS
sleep $TIMEOUT
- facet_failover $SINGLEMDS
- df $MOUNT || return 1
+ fail $SINGLEMDS
unlinkmany $MOUNT1/$tfile- 25 || return 2
facet_failover ost1
sleep $TIMEOUT
- facet_failover ost1
- df $MOUNT || return 1
+ fail ost1
unlinkmany $MOUNT1/$tfile- 25 || return 2
touch $MOUNT1/a
touch $MOUNT2/b
umount $MOUNT2
- facet_failover $SINGLEMDS
- df $MOUNT1 || return 1
+ fail $SINGLEMDS
rm $MOUNT1/a
zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
TIER1=$((`date +%s` - BEFORE))
touch $MOUNT1/a
touch $MOUNT2/b
umount $MOUNT2
- facet_failover $SINGLEMDS
- df $MOUNT1 || return 1
+ fail $SINGLEMDS
rm $MOUNT1/a
zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
TIER2=$((`date +%s` - BEFORE))