Whamcloud - gitweb
b=23793 MOUNTOPT "-o" cleanup
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 5f8f020..b487af2 100644 (file)
@@ -39,6 +39,11 @@ MDSSIZE=200000
 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
@@ -125,6 +130,12 @@ stop_mds() {
        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
@@ -154,12 +165,10 @@ mount_client() {
 }
 
 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() {
@@ -695,6 +704,27 @@ test_21c() {
 }
 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
 
@@ -1572,28 +1602,32 @@ test_36() { # 12743
 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"
@@ -1673,7 +1707,9 @@ test_40() { # bug 15759
 }
 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/})
 
@@ -1694,8 +1730,33 @@ test_41() { #bug 14134
         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
@@ -2640,6 +2701,8 @@ run_test 58 "missing llog files must not prevent MDT from mounting"
 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