OSTSIZE=200000
. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+if ! combined_mgs_mds; then
+ # bug number for skipped test: 23954
+ ALWAYS_EXCEPT="$ALWAYS_EXCEPT 24b"
+fi
+
# STORED_MDSSIZE is used in test_18
if [ -n "$MDSSIZE" ]; then
STORED_MDSSIZE=$MDSSIZE
stop $SINGLEMDS -f || return 97
}
+stop_mgs() {
+ echo "stop mgs service on `facet_active_host mgs`"
+ # These tests all use non-failover stop
+ stop mgs -f || return 97
+}
+
start_ost() {
echo "start ost1 service on `facet_active_host ost1`"
start ost1 `ostdevname 1` $OST_MOUNT_OPTS $@ || return 95
}
remount_client() {
- local SAVEMOUNTOPT=$MOUNTOPT
- MOUNTOPT="remount,$1"
+ local mountopt="-o remount,$1"
local MOUNTPATH=$2
echo "remount '$1' lustre on ${MOUNTPATH}....."
- zconf_mount `hostname` $MOUNTPATH || return 96
- MOUNTOPT=$SAVEMOUNTOPT
+ zconf_mount `hostname` $MOUNTPATH "$mountopt" || return 96
}
umount_client() {
}
run_test 21c "start mds between two osts, stop mds last"
+test_21d() {
+ if combined_mgs_mds ; then
+ skip "need separate mgs device" && return 0
+ fi
+ stopall
+
+ reformat
+
+ start_mgs
+ start_ost
+ start_ost2
+ start_mds
+ wait_osc_import_state mds ost2 FULL
+
+ stop_ost
+ stop_ost2
+ stop_mds
+ stop_mgs
+}
+run_test 21d "start mgs then ost and then mds"
+
test_22() {
start_mds
run_test 36 "df report consistency on OSTs with different block size"
test_37() {
- client_only && skip "client only testing" && return 0
- LOCAL_MDSDEV="$TMP/mdt.img"
- SYM_MDSDEV="$TMP/sym_mdt.img"
+ local mntpt=$(facet_mntpt $SINGLEMDS)
+ local mdsdev=$(mdsdevname ${SINGLEMDS//mds/})
+ local mdsdev_sym="$TMP/sym_mdt.img"
- echo "MDS : $LOCAL_MDSDEV"
- echo "SYMLINK : $SYM_MDSDEV"
- rm -f $LOCAL_MDSDEV
+ echo "MDS : $mdsdev"
+ echo "SYMLINK : $mdsdev_sym"
+ do_facet $SINGLEMDS rm -f $mdsdev_sym
- touch $LOCAL_MDSDEV
- mkfs.lustre --reformat --fsname=lustre --mdt --mgs --device-size=9000 $LOCAL_MDSDEV ||
- error "mkfs.lustre $LOCAL_MDSDEV failed"
- ln -s $LOCAL_MDSDEV $SYM_MDSDEV
+ do_facet $SINGLEMDS ln -s $mdsdev $mdsdev_sym
- echo "mount symlink device - $SYM_MDSDEV"
+ echo "mount symlink device - $mdsdev_sym"
- mount_op=`mount -v -t lustre -o loop $SYM_MDSDEV ${MOUNT%/*}/mds 2>&1 | grep "unable to set tunable"`
- umount -d ${MOUNT%/*}/mds
- rm -f $LOCAL_MDSDEV $SYM_MDSDEV
+ local rc=0
+ mount_op=$(do_facet $SINGLEMDS mount -v -t lustre $MDS_MOUNT_OPTS $mdsdev_sym $mntpt 2>&1 )
+ rc=${PIPESTATUS[0]}
+
+ echo mount_op=$mount_op
+
+ do_facet $SINGLEMDS "umount -d $mntpt && rm -f $mdsdev_sym"
- if [ -n "$mount_op" ]; then
- error "**** FAIL: set tunables failed for symlink device"
+ if $(echo $mount_op | grep -q "unable to set tunable"); then
+ error "set tunables failed for symlink device"
fi
+
+ [ $rc -eq 0 ] || error "mount symlink $mdsdev_sym failed! rc=$rc"
+
return 0
}
run_test 37 "verify set tunables works for symlink device"
}
run_test 40 "race during service thread startup"
-test_41() { #bug 14134
+test_41a() { #bug 14134
+ echo $MDS_MOUNT_OPTS | grep "loop" && skip " loop devices does not work with nosvc option" && return
+
local rc
local MDSDEV=$(mdsdevname ${SINGLEMDS//mds/})
unload_modules_conf || return 204
return $rc
}
-run_test 41 "mount mds with --nosvc and --nomgs"
+run_test 41a "mount mds with --nosvc and --nomgs"
+
+test_41b() {
+ echo $MDS_MOUNT_OPTS | grep "loop" && skip " loop devices does not work with nosvc option" && return
+
+ stopall
+ reformat
+ local MDSDEV=$(mdsdevname ${SINGLEMDS//mds/})
+
+ start $SINGLEMDS $MDSDEV $MDS_MOUNT_OPTS -o nosvc -n
+ start_ost
+ start $SINGLEMDS $MDSDEV $MDS_MOUNT_OPTS -o nomgs,force
+ mkdir -p $MOUNT
+ mount_client $MOUNT || return 1
+ sleep 5
+ echo "blah blah" > $MOUNT/$tfile
+ cat $MOUNT/$tfile || return 200
+
+ umount_client $MOUNT
+ stop_ost || return 201
+ stop_mds -f || return 202
+ stop_mds -f || return 203
+
+}
+
+run_test 41b "mount mds with --nosvc and --nomgs on first mount"
test_42() { #bug 14693
setup
check_mount || return 2
if ! combined_mgs_mds ; then
stop mgs
fi
+
cleanup_gss
-equals_msg `basename $0`: test complete
-[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true
+
+complete $(basename $0) $SECONDS
+exit_status