#
# This test needs to be run on the client
#
-
+SAVE_PWD=$PWD
LUSTRE=${LUSTRE:-`dirname $0`/..}
+SETUP=${SETUP:-}
+CLEANUP=${CLEANUP:-}
. $LUSTRE/tests/test-framework.sh
init_test_env $@
. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+CHECK_GRANT=${CHECK_GRANT:-"yes"}
+GRANT_CHECK_LIST=${GRANT_CHECK_LIST:-""}
# Skip these tests
# bug number: 2766 4176
ALWAYS_EXCEPT="0b 39 $REPLAY_SINGLE_EXCEPT"
-gen_config() {
- rm -f $XMLCONFIG
- add_mds $SINGLEMDS --dev $MDSDEV --size $MDSSIZE
- if [ ! -z "$mdsfailover_HOST" ]; then
- add_mdsfailover $SINGLEMDS --dev $MDSDEV --size $MDSSIZE
- fi
-
- add_lov lov1 $SINGLEMDS --stripe_sz $STRIPE_BYTES \
- --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
- add_ost ost --lov lov1 --dev `ostdevname 1` --size $OSTSIZE
- add_ost ost2 --lov lov1 --dev `ostdevname 2` --size $OSTSIZE
- add_client client $SINGLEMDS --lov lov1 --path $MOUNT
-}
-
build_test_filter
-SETUP=${SETUP:-"setup"}
-CLEANUP=${CLEANUP:-"cleanupall"}
-
-if [ "$ONLY" == "cleanup" ]; then
- sysctl -w lnet.debug=0 || true
- $CLEANUP
- exit 0
-fi
-
-setup() {
- [ "$REFORMAT" ] && formatall
- setupall
-}
-
-$SETUP
-
-if [ "$ONLY" == "setup" ]; then
- exit 0
-fi
+cleanup_and_setup_lustre
mkdir -p $DIR
run_test 2a "touch"
test_2b() {
- ./mcreate $DIR/$tfile
+ mcreate $DIR/$tfile
replay_barrier $SINGLEMDS
touch $DIR/$tfile
fail $SINGLEMDS
fail $SINGLEMDS # start orphan recovery
df -P $DIR || df -P $DIR || true # reconnect
- sleep 2
+ wait_mds_recovery_done || error "MDS recovery not done"
AFTERUSED=`df -P $DIR | tail -1 | awk '{ print $3 }'`
log "before $BEFOREUSED, after $AFTERUSED"
run_test 20b "write, unlink, eviction, replay, (test mds_cleanup_orphans)"
test_20c() { # bug 10480
- dd if=/dev/zero of=$DIR/$tfile bs=4k count=10000
-
- exec 100< $DIR/$tfile
+ multiop $DIR/$tfile Ow_c &
+ pid=$!
+ # give multiop a chance to open
+ sleep 1
ls -la $DIR/$tfile
df -P $DIR || df -P $DIR || true # reconnect
- exec 100<&-
-
+ kill -USR1 $pid
test -s $DIR/$tfile || error "File was truncated"
return 0
# the page, guarnateeing that the unlock from the RPC completion would
# assert on trying to unlock the unlocked page.
test_41() {
+ [ $OSTCOUNT -lt 2 ] && \
+ skip "skipping test 41: we don't have a second OST to test with" && \
+ return
+
local f=$MOUNT/$tfile
# make sure the start of the file is ost1
lfs setstripe $f $((128 * 1024)) 0 0
createmany -o $DIR/$tfile-%d 800
replay_barrier ost1
unlinkmany $DIR/$tfile-%d 0 400
- DEBUG42=`sysctl -n lnet.debug`
+ debugsave
sysctl -w lnet.debug=-1
facet_failover ost1
#[ $blocks_after -lt $blocks ] || return 1
echo wait for MDS to timeout and recover
sleep $((TIMEOUT * 2))
- sysctl -w lnet.debug="$DEBUG42"
+ debugrestore
unlinkmany $DIR/$tfile-%d 400 400
$CHECKSTAT -t file $DIR/$tfile-* && return 2 || true
}
run_test 48 "MDS->OSC failure during precreate cleanup (2824)"
test_50() {
- local oscdev=`grep ${ost1_svc}-osc-MDT0000 $LPROC/devices | awk '{print $1}'`
+ local oscdev=`do_facet $SINGLEMDS grep ${ost1_svc}-osc-MDT0000 $LPROC/devices | awk '{print $1}'`
[ "$oscdev" ] || return 1
- $LCTL --device $oscdev recover && $LCTL --device $oscdev recover
+ do_facet $SINGLEMDS $LCTL --device $oscdev recover || return 2
+ do_facet $SINGLEMDS $LCTL --device $oscdev recover || return 3
# give the mds_lov_sync threads a chance to run
sleep 5
}
run_test 60 "test llog post recovery init vs llog unlink"
equals_msg `basename $0`: test complete, cleaning up
-$CLEANUP
+check_and_cleanup_lustre
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true