Whamcloud - gitweb
b=19890 fix mgs conf for mds and client for nosvc option
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 5f8f020..6d9c9b0 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
@@ -695,6 +706,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 +1604,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 :     $mdsdev"
+       echo "SYMLINK : $mdsdev_sym"
+       do_facet $SINGLEMDS rm -f $mdsdev_sym
 
-       echo "MDS :     $LOCAL_MDSDEV"
-       echo "SYMLINK : $SYM_MDSDEV"
-       rm -f $LOCAL_MDSDEV
+       do_facet $SINGLEMDS ln -s $mdsdev $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
+       echo "mount symlink device - $mdsdev_sym"
 
-       echo "mount symlink device - $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]}
 
-       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
+       echo mount_op=$mount_op
 
-       if [ -n "$mount_op" ]; then
-               error "**** FAIL: set tunables failed for symlink device"
+       do_facet $SINGLEMDS "umount -d $mntpt && rm -f $mdsdev_sym"
+
+       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 +1709,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 +1732,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