require_dsh_mds || exit 0
# Skip these tests
-# bug number: 17466 18857 LU1867
-ALWAYS_EXCEPT="61d 33a 33b 89 $REPLAY_SINGLE_EXCEPT"
+# bug number: 17466 18857 LU-1867 LU-1473
+ALWAYS_EXCEPT="61d 33a 33b 89 62 $REPLAY_SINGLE_EXCEPT"
[ $(facet_fstype $SINGLEMDS) = "zfs" ] &&
# bug number for skipped test: LU-951
# 63 min 7 min AT AT AT AT"
[ "$SLOW" = "no" ] && EXCEPT_SLOW="1 2 3 4 6 12 16 44a 44b 65 66 67 68"
+[ $(facet_fstype $SINGLEMDS) = "zfs" ] &&
+# bug number for skipped test: LU-3127
+ ALWAYS_EXCEPT="$ALWAYS_EXCEPT 73b"
+
build_test_filter
check_and_setup_lustre
run_test 20a "|X| open(O_CREAT), unlink, replay, close (test mds_cleanup_orphans)"
test_20b() { # bug 10480
- BEFOREUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
-
- dd if=/dev/zero of=$DIR/$tfile bs=4k count=10000 &
- pid=$!
- while [ ! -e $DIR/$tfile ] ; do
- usleep 60 # give dd a chance to start
- done
+ local wait_timeout=$((TIMEOUT * 4))
+ local BEFOREUSED
+ local AFTERUSED
- $GETSTRIPE $DIR/$tfile || return 1
- rm -f $DIR/$tfile || return 2 # make it an orphan
- mds_evict_client
- client_up || client_up || true # reconnect
+ BEFOREUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
+ dd if=/dev/zero of=$DIR/$tfile bs=4k count=10000 &
+ pid=$!
+ while [ ! -e $DIR/$tfile ] ; do
+ usleep 60 # give dd a chance to start
+ done
- fail $SINGLEMDS # start orphan recovery
- wait_recovery_complete $SINGLEMDS || error "MDS recovery not done"
- wait_mds_ost_sync || return 3
- AFTERUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
- log "before $BEFOREUSED, after $AFTERUSED"
- (( $AFTERUSED > $BEFOREUSED + $(fs_log_size) )) &&
- error "after $AFTERUSED > before $BEFOREUSED"
- return 0
+ $GETSTRIPE $DIR/$tfile || return 1
+ rm -f $DIR/$tfile || return 2 # make it an orphan
+ mds_evict_client
+ client_up || client_up || true # reconnect
+
+ fail $SINGLEMDS # start orphan recovery
+ wait_recovery_complete $SINGLEMDS || error "MDS recovery not done"
+ wait_delete_completed_mds $wait_timeout || return 3
+ AFTERUSED=$(df -P $DIR | tail -1 | awk '{ print $3 }')
+ log "before $BEFOREUSED, after $AFTERUSED"
+ (( $AFTERUSED > $BEFOREUSED + $(fs_log_size) )) &&
+ error "after $AFTERUSED > before $BEFOREUSED"
+ return 0
}
run_test 20b "write, unlink, eviction, replay, (test mds_cleanup_orphans)"
test_44a() { # was test_44
local at_max_saved=0
- local mdcdev=$($LCTL get_param -n devices |
- awk "/ ${FSNAME}-MDT0000-mdc-/ {print \$1}")
+ local mdcdev=$($LCTL dl |
+ awk "/${FSNAME}-MDT0000-mdc-/ {if (\$2 == \"UP\") {print \$1}}")
[ "$mdcdev" ] || return 2
[ $(echo $mdcdev | wc -w) -eq 1 ] ||
{ echo mdcdev=$mdcdev; $LCTL dl; return 3; }
for i in `seq 1 10`; do
echo "$i of 10 ($(date +%s))"
- do_facet $SINGLEMDS "lctl get_param -n mdt.*.mdt.timeouts | grep service"
+ do_facet $SINGLEMDS \
+ "lctl get_param -n md[ts].*.mdt.timeouts | grep service"
#define OBD_FAIL_TGT_CONN_RACE 0x701
do_facet $SINGLEMDS "lctl set_param fail_loc=0x80000701"
# lctl below may fail, it is valid case
run_test 44a "race in target handle connect"
test_44b() {
- local mdcdev=$($LCTL get_param -n devices |
- awk "/ ${FSNAME}-MDT0000-mdc-/ {print \$1}")
+ local mdcdev=$($LCTL dl |
+ awk "/${FSNAME}-MDT0000-mdc-/ {if (\$2 == \"UP\") {print \$1}}")
[ "$mdcdev" ] || return 2
[ $(echo $mdcdev | wc -w) -eq 1 ] ||
{ echo mdcdev=$mdcdev; $LCTL dl; return 3; }
for i in `seq 1 10`; do
echo "$i of 10 ($(date +%s))"
- do_facet $SINGLEMDS "lctl get_param -n mdt.*.mdt.timeouts | grep service"
+ do_facet $SINGLEMDS \
+ "lctl get_param -n md[ts].*.mdt.timeouts | grep service"
#define OBD_FAIL_TGT_DELAY_RECONNECT 0x704
do_facet $SINGLEMDS "lctl set_param fail_loc=0x80000704"
# lctl below may fail, it is valid case
}
run_test 57 "test recovery from llog for setattr op"
+cleanup_58() {
+ zconf_umount `hostname` $MOUNT2
+ trap - EXIT
+}
+
#recovery many mds-ost setattr from llog
test_58a() {
mkdir -p $DIR/$tdir
local orig
local new
+ trap cleanup_58 EXIT
+
large_xattr_enabled &&
orig="$(generate_string $(max_xattr_size))" || orig="bar"
[[ "$new" = "$orig" ]] || return 1
rm -f $DIR/$tdir/$tfile
rmdir $DIR/$tdir
- zconf_umount `hostname` $MOUNT2
+ cleanup_58
}
run_test 58b "test replay of setxattr op"
local orig1
local new
+ trap cleanup_58 EXIT
+
if large_xattr_enabled; then
local xattr_size=$(max_xattr_size)
orig="$(generate_string $((xattr_size / 2)))"
[[ "$new" = "$orig1" ]] || return 4
rm -f $DIR/$tdir/$tfile
rmdir $DIR/$tdir
- zconf_umount $HOSTNAME $MOUNT2
+ cleanup_58
}
run_test 58c "resend/reconstruct setxattr op"
#LU-1897 wait for all dbench copies to start
while ! check_for_process $clients dbench; do
elapsed=$(($(date +%s) - start_ts))
- if [ $elapsed -gt $duration]; then
+ if [ $elapsed -gt $duration ]; then
killall_process $clients dbench
error "dbench failed to start on $clients!"
fi
local uuid=$(ostuuid_from_index $i)
for file in f$i all; do
if [[ $dir/$file != $($LFS find --obd $uuid --name $file $dir) ]]; then
- $GETSTRIPE $dir/file
- error wrong stripe: $file, uuid: $uuid
+ $GETSTRIPE $dir/$file
+ error wrong stripe: $file, uuid: $uuid
fi
done
done