Whamcloud - gitweb
LU-9899 tests: mount client on MGS for tests with pools
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index d3a515a..6e272a1 100644 (file)
@@ -23,10 +23,6 @@ is_sles11()                                          # LU-2181
        return 1
 }
 
-if is_sles11; then                                     # LU-2181
-       ALWAYS_EXCEPT="$ALWAYS_EXCEPT 23a 34b"
-fi
-
 if [ "$FAILURE_MODE" = "HARD" ]; then
        CONFIG_EXCEPTIONS="24a " &&
        echo "Except the tests: $CONFIG_EXCEPTIONS for " \
@@ -68,8 +64,12 @@ OSTDEV1_2=$fs2ost_DEV
 OSTDEV2_2=$fs3ost_DEV
 
 if ! combined_mgs_mds; then
-    # bug number for skipped test:    23954
-    ALWAYS_EXCEPT="$ALWAYS_EXCEPT       24b"
+       # bug number for skipped test: LU-9860 LU-9860 LU-9860
+       ALWAYS_EXCEPT="$ALWAYS_EXCEPT  43b     53b     54b"
+       # bug number for skipped test: LU-9875 LU-9879 LU-9879 LU-9879 LU-9879
+       ALWAYS_EXCEPT="$ALWAYS_EXCEPT  70e     80      84      87      100"
+       # bug number for skipped test: LU-8110 LU-9879 LU-9879 LU-9879
+       ALWAYS_EXCEPT="$ALWAYS_EXCEPT  102     104     105     107"
 fi
 
 # pass "-E lazy_itable_init" to mke2fs to speed up the formatting time
@@ -255,7 +255,9 @@ cleanup_nocli() {
 }
 
 cleanup() {
-       umount_client $MOUNT || return 200
+       local force=""
+       [ "x$1" != "x" ] && force='-f'
+       umount_client $MOUNT $force|| return 200
        cleanup_nocli || return $?
 }
 
@@ -487,7 +489,7 @@ run_test 5e "delayed connect, don't crash (bug 10268)"
 
 test_5f() {
        if combined_mgs_mds ; then
-               skip "combined mgs and mds"
+               skip "needs separate mgs and mds"
                return 0
        fi
 
@@ -608,7 +610,7 @@ is_blkdev () {
 
 test_17() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -637,7 +639,7 @@ run_test 17 "Verify failed mds_postsetup won't fail assertion (2936) (should ret
 
 test_18() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -960,9 +962,10 @@ test_24a() {
        local fs2ostdev=$(ostdevname 1_2)
        local fs2mdsvdev=$(mdsvdevname 1_2)
        local fs2ostvdev=$(ostvdevname 1_2)
+       local cl_user
 
-       # test 8-char fsname as well
-       local FSNAME2=test1234
+       # LU-9733 test fsname started with numbers as well
+       local FSNAME2=969362ae
 
        add fs2mds $(mkfs_opts mds1 ${fs2mdsdev} ) --nomgs --mgsnode=$MGSNID \
                --fsname=${FSNAME2} --reformat $fs2mdsdev $fs2mdsvdev || exit 10
@@ -975,6 +978,15 @@ test_24a() {
        start fs2ost $fs2ostdev $OST_MOUNT_OPTS
        mkdir -p $MOUNT2 || error "mkdir $MOUNT2 failed"
        $MOUNT_CMD $MGSNID:/${FSNAME2} $MOUNT2 || error "$MOUNT_CMD failed"
+
+       # LU-9733 test fsname started with numbers
+       cl_user=$(do_facet $SINGLEMDS lctl --device $FSNAME2-MDT0000 \
+                       changelog_register -n) ||
+                               error "register changelog failed"
+
+       do_facet $SINGLEMDS lctl --device $FSNAME2-MDT0000 \
+                       changelog_deregister $cl_user ||
+                               error "deregister changelog failed"
        # 1 still works
        check_mount || error "check_mount failed"
        # files written on 1 should not show up on 2
@@ -1183,7 +1195,7 @@ test_28a() { # LU-4221
 run_test 28a "set symlink parameters permanently with conf_param"
 
 test_29() {
-       [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >= 2 OSTs" && return
         setup > /dev/null 2>&1
        start_ost2 || error "Unable to start OST2"
        sleep 10
@@ -1677,6 +1689,7 @@ t32_test() {
        local tarball=$1
        local writeconf=$2
        local dne_upgrade=${dne_upgrade:-"no"}
+       local dom_upgrade=${dom_upgrade:-"no"}
        local ff_convert=${ff_convert:-"no"}
        local shall_cleanup_mdt=false
        local shall_cleanup_mdt1=false
@@ -2013,11 +2026,6 @@ t32_test() {
                shall_cleanup_lustre=true
                $r $LCTL set_param debug="$PTLDEBUG"
 
-               t32_verify_quota $node $fsname $tmp/mnt/lustre || {
-                       error_noexit "verify quota failed"
-                       return 1
-               }
-
                if $r test -f $tmp/list; then
                        #
                        # There is not a Test Framework API to copy files to or
@@ -2069,6 +2077,43 @@ t32_test() {
                        echo "list verification skipped"
                fi
 
+               if [ "$dom_upgrade" != "no" ]; then
+                       echo "Check DoM file can be created"
+                       $LFS setstripe -E 1M -L mdt -E EOF $tmp/mnt/lustre/dom || {
+                               error_noexit "Verify DoM creation"
+                               return 1
+                       }
+                       [ $($LFS getstripe -L $tmp/mnt/lustre/dom) == 100 ] || {
+                               error_noexit "Verify a DoM file"
+                               return 1
+                       }
+                       dd if=/dev/urandom of=$tmp/mnt/lustre/dom bs=4096 \
+                               count=1 conv=fsync || {
+                               error_noexit "Cannot write to DoM file"
+                               return 1
+                       }
+                       [ $(stat -c%s $tmp/mnt/lustre/dom) == 4096 ] || {
+                               error_noexit "DoM: bad size after write"
+                               return 1
+                       }
+                       rm $tmp/mnt/lustre/dom
+
+                       $r $LCTL get_param -n lod.*MDT0000*.dom_stripesize || {
+                               error_noexit "Getting \"dom_stripesize\""
+                               return 1
+                       }
+                       $r $LCTL conf_param \
+                               $fsname-MDT0000.lod.dom_stripesize=0 || {
+                               error_noexit "Changing \"dom_stripesize\""
+                               return 1
+                       }
+                       wait_update $(facet_host mds) "$LCTL get_param \
+                               -n lod.*MDT0000*.dom_stripesize" 0 || {
+                               error_noexit "Verifying \"dom_stripesize\""
+                               return 1
+                       }
+               fi
+
                if [ "$dne_upgrade" != "no" ]; then
                        $LFS mkdir -i 1 -c2 $tmp/mnt/lustre/striped_dir || {
                                error_noexit "set striped dir failed"
@@ -2373,6 +2418,21 @@ test_32d() {
 }
 run_test 32d "convert ff test"
 
+test_32e() {
+       local tarballs
+       local tarball
+       local rc=0
+
+       t32_check
+       for tarball in $tarballs; do
+               echo $tarball | grep "2_9" || continue
+               #load_modules
+               dom_upgrade=yes t32_test $tarball writeconf || let "rc += $?"
+       done
+       return $rc
+}
+run_test 32e "dom upgrade test"
+
 test_33a() { # bug 12333, was test_33
        local FSNAME2=test-123
        local MDSDEV=$(mdsdevname ${SINGLEMDS//mds/})
@@ -2397,15 +2457,20 @@ test_33a() { # bug 12333, was test_33
                mkfsoptions="--mkfsoptions=\\\"-J size=8\\\"" # See bug 17931.
        fi
 
-       add fs2mds $(mkfs_opts mds1 ${fs2mdsdev}) --mgs --fsname=${FSNAME2} \
-               --reformat $mkfsoptions $fs2mdsdev $fs2mdsvdev || exit 10
+       if combined_mgs_mds; then
+               local mgs_flag="--mgs"
+       fi
+
+       add fs2mds $(mkfs_opts mds1 ${fs2mdsdev}) --fsname=${FSNAME2} \
+               --reformat $mgs_flag $mkfsoptions $fs2mdsdev $fs2mdsvdev ||
+               exit 10
        add fs2ost $(mkfs_opts ost1 ${fs2ostdev}) --mgsnode=$MGSNID \
                --fsname=${FSNAME2} --index=8191 --reformat $fs2ostdev \
                $fs2ostvdev || exit 10
 
        start fs2mds $fs2mdsdev $MDS_MOUNT_OPTS && trap cleanup_fs2 EXIT INT
        start fs2ost $fs2ostdev $OST_MOUNT_OPTS
-       do_facet $SINGLEMDS "$LCTL conf_param $FSNAME2.sys.timeout=200" ||
+       do_facet mgs "$LCTL conf_param $FSNAME2.sys.timeout=200" ||
                error "$LCTL conf_param $FSNAME2.sys.timeout=200 failed"
        mkdir -p $MOUNT2 || error "mkdir $MOUNT2 failed"
        $MOUNT_CMD $MGSNID:/${FSNAME2} $MOUNT2 || error "$MOUNT_CMD failed"
@@ -2607,7 +2672,7 @@ test_35b() { # bug 18674
 run_test 35b "Continue reconnection retries, if the active server is busy"
 
 test_36() { # 12743
-       [ $OSTCOUNT -lt 2 ] && skip_env "skipping test for single OST" && return
+       [ $OSTCOUNT -lt 2 ] && skip_env "needs >= 2 OSTs" && return
 
        [ "$ost_HOST" = "`hostname`" -o "$ost1_HOST" = "`hostname`" ] ||
                { skip "remote OST" && return 0; }
@@ -2696,7 +2761,7 @@ test_37() {
        local rc=0
 
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Currently only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -2880,7 +2945,7 @@ test_41b() {
        echo "blah blah" > $MOUNT/$tfile
        cat $MOUNT/$tfile || error "cat $MOUNT/$tfile failed"
 
-       umount_client $MOUNT || error "umount_client $MOUNT failed"
+       umount_client $MOUNT -f || error "umount_client $MOUNT failed"
        stop_ost || error "Unable to stop OST1"
        stop_mds || error "Unable to stop MDS"
        stop_mds || error "Unable to stop MDS on second try"
@@ -3674,7 +3739,7 @@ test_50f() {
 run_test 50f "normal statfs one server in down"
 
 test_50g() {
-       [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >=2 OSTs" && return
        setup
        start_ost2 || error "Unable to start OST2"
         wait_osc_import_state mds ost2 FULL
@@ -3705,7 +3770,7 @@ run_test 50g "deactivated OST should not cause panic"
 # LU-642
 test_50h() {
        # prepare MDT/OST, make OSC inactive for OST1
-       [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return
+       [ "$OSTCOUNT" -lt "2" ] && skip_env "needs >=2 OSTs" && return
 
        [ $(facet_fstype ost1) == zfs ] && import_zpool ost1
        do_facet ost1 "$TUNEFS --param osc.active=0 `ostdevname 1`" ||
@@ -3743,7 +3808,7 @@ run_test 50h "LU-642: activate deactivated OST"
 
 test_50i() {
        # prepare MDT/OST, make OSC inactive for OST1
-       [ "$MDSCOUNT" -lt "2" ] && skip_env "$MDSCOUNT < 2, skipping" && return
+       [ "$MDSCOUNT" -lt "2" ] && skip_env "needs >= 2 MDTs" && return
 
        load_modules
        [ $(facet_fstype mds2) == zfs ] && import_zpool mds2
@@ -3876,7 +3941,7 @@ diff_files_xattrs()
 
 test_52() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -4095,7 +4160,7 @@ run_test 53b "check MDS thread count params"
 
 test_54a() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -4107,7 +4172,7 @@ run_test 54a "test llverdev and partial verify of device"
 
 test_54b() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -4125,7 +4190,7 @@ lov_objid_size()
 
 test_55() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -4169,9 +4234,7 @@ test_56a() {
 
        MDSJOURNALSIZE=16
 
-       for num in $(seq 1 $MDSCOUNT); do
-               format_mdt $num
-       done
+       formatall
        add ost1 $(mkfs_opts ost1 $(ostdevname 1)) --index=10000 --reformat \
                $(ostdevname 1) $(ostvdevname 1)
        add ost2 $(mkfs_opts ost2 $(ostdevname 2)) --index=1000 --reformat \
@@ -4395,7 +4458,7 @@ test_60() { # LU-471
        local num
 
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -4505,7 +4568,7 @@ run_test 61 "large xattr"
 
 test_62() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -4529,7 +4592,7 @@ run_test 62 "start with disabled journal"
 
 test_63() {
        if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based MDTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -4573,7 +4636,7 @@ run_test 64 "check lfs df --lazy "
 test_65() { # LU-2237
        # Currently, the test is only valid for ldiskfs backend
        [ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
-               skip "non-ldiskfs backend" && return
+               skip "ldiskfs only test" && return
 
        local devname=$(mdsdevname ${SINGLEMDS//mds/})
        local brpt=$(facet_mntpt brpt)
@@ -5014,6 +5077,7 @@ test_70e() {
        soc=$(do_facet mds1 "$LCTL get_param -n \
                mdt.*MDT0000.sync_lock_cancel")
        [ $soc == "never" ] || error "SoC enabled on single MDS"
+       umount_client $MOUNT -f > /dev/null
 
        cleanup || error "cleanup failed with $?"
 }
@@ -5438,7 +5502,7 @@ run_test 77 "comma-separated MGS NIDs and failover node NIDs"
 test_78() {
        [[ $(facet_fstype $SINGLEMDS) != ldiskfs ||
           $(facet_fstype ost1) != ldiskfs ]] &&
-               skip "only applicable to ldiskfs-based MDTs and OSTs" && return
+               skip "ldiskfs only test" && return
 
        # reformat the Lustre filesystem with a smaller size
        local saved_MDSCOUNT=$MDSCOUNT
@@ -5697,7 +5761,7 @@ restore_ostindex() {
 test_81() { # LU-4665
        [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.6.54) ]] ||
                { skip "Need MDS version at least 2.6.54" && return; }
-       [[ $OSTCOUNT -ge 3 ]] || { skip_env "Need at least 3 OSTs" && return; }
+       [[ $OSTCOUNT -ge 3 ]] || { skip_env "needs >= 3 OSTs" && return; }
 
        stopall
 
@@ -5759,7 +5823,7 @@ run_test 81 "sparse OST indexing"
 test_82a() { # LU-4665
        [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.6.54) ]] ||
                { skip "Need MDS version at least 2.6.54" && return; }
-       [[ $OSTCOUNT -ge 3 ]] || { skip_env "Need at least 3 OSTs" && return; }
+       [[ $OSTCOUNT -ge 3 ]] || { skip_env "needs >= 3 OSTs" && return; }
 
        stopall
 
@@ -5857,6 +5921,9 @@ cleanup_82b() {
        # Remove OSTs from a pool and destroy the pool.
        destroy_pool $ost_pool || true
 
+       if ! combined_mgs_mds ; then
+               umount_mgs_client
+       fi
        restore_ostindex
 }
 
@@ -5867,7 +5934,7 @@ cleanup_82b() {
 test_82b() { # LU-4665
        [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.6.54) ]] ||
                { skip "Need MDS version at least 2.6.54" && return; }
-       [[ $OSTCOUNT -ge 4 ]] || { skip_env "Need at least 4 OSTs" && return; }
+       [[ $OSTCOUNT -ge 4 ]] || { skip_env "needs >= 4 OSTs" && return; }
 
        stopall
 
@@ -5896,6 +5963,10 @@ test_82b() { # LU-4665
        done
 
        mount_client $MOUNT || error "mount client $MOUNT failed"
+       if ! combined_mgs_mds ; then
+               mount_mgs_client
+       fi
+
        wait_osts_up
        $LFS df $MOUNT || error "$LFS df $MOUNT failed"
        mkdir $DIR/$tdir || error "mkdir $DIR/$tdir failed"
@@ -5958,7 +6029,7 @@ test_83() {
        [[ $(lustre_version_code ost1) -ge $(version_code 2.6.91) ]] ||
                { skip "Need OST version at least 2.6.91" && return 0; }
        if [ $(facet_fstype ost1) != ldiskfs ]; then
-               skip "Only applicable to ldiskfs-based OSTs"
+               skip "ldiskfs only test"
                return
        fi
 
@@ -6136,7 +6207,7 @@ test_87() { #LU-6544
        [[ $(lustre_version_code $SINGLEMDS1) -ge $(version_code 2.9.51) ]] ||
                { skip "Need MDS version at least 2.9.51" && return; }
        [[ $(facet_fstype $SINGLEMDS) != ldiskfs ]] &&
-               { skip "Only applicable to ldiskfs-based MDTs" && return; }
+               { skip "ldiskfs only test" && return; }
        [[ $OSTCOUNT -gt 59 ]] &&
                { skip "Ignore wide striping situation" && return; }
 
@@ -7120,7 +7191,7 @@ run_test 98 "Buffer-overflow check while parsing mount_opts"
 test_99()
 {
        [[ $(facet_fstype ost1) != ldiskfs ]] &&
-               { skip "Only applicable to ldiskfs-based OSTs" && return; }
+               { skip "ldiskfs only test" && return; }
        [[ $(lustre_version_code ost1) -ge $(version_code 2.8.57) ]] ||
                { skip "Need OST version at least 2.8.57" && return 0; }
 
@@ -7146,7 +7217,7 @@ test_99()
        do_facet ost1 $DEBUGFS -c -R stats `ostdevname 1` | grep "meta_bg" ||
                error "meta_bg is not set"
 
-       return 0
+       reformat
 }
 run_test 99 "Adding meta_bg option"
 
@@ -7245,7 +7316,7 @@ test_renamefs() {
 
        echo "rename $FSNAME to $newname"
 
-       if [ ! combined_mgs_mds ]; then
+       if ! combined_mgs_mds ; then
                local facet=$(mgsdevname)
 
                do_facet mgs \
@@ -7317,6 +7388,9 @@ test_103() {
        cp $LUSTRE/tests/test-framework.sh $DIR/$tdir ||
                error "(2) Fail to copy test-framework.sh"
 
+       if ! combined_mgs_mds ; then
+               mount_mgs_client
+       fi
        do_facet mgs $LCTL pool_new $FSNAME.pool1 ||
                error "(3) Fail to create $FSNAME.pool1"
        # name the pool name as the fsname
@@ -7328,6 +7402,9 @@ test_103() {
        $SETSTRIPE -p $FSNAME $DIR/$tdir/d0 ||
                error "(6) Fail to setstripe on $DIR/$tdir/d0"
 
+       if ! combined_mgs_mds ; then
+               umount_mgs_client
+       fi
        KEEP_ZPOOL=true
        stopall
 
@@ -7337,6 +7414,9 @@ test_103() {
        FSNAME="mylustre"
        setupall
 
+       if ! combined_mgs_mds ; then
+               mount_mgs_client
+       fi
        test_103_check_pool $save_fsname 7
 
        if [ $OSTCOUNT -ge 2 ]; then
@@ -7345,6 +7425,9 @@ test_103() {
 
        $SETSTRIPE -p $save_fsname $DIR/$tdir/f0 ||
                error "(16) Fail to setstripe on $DIR/$tdir/f0"
+       if ! combined_mgs_mds ; then
+               umount_mgs_client
+       fi
 
        stopall
 
@@ -7353,8 +7436,14 @@ test_103() {
        FSNAME="tfs"
        setupall
 
+       if ! combined_mgs_mds ; then
+               mount_mgs_client
+       fi
        test_103_check_pool $save_fsname 17
 
+       if ! combined_mgs_mds ; then
+               umount_mgs_client
+       fi
        stopall
 
        test_renamefs $save_fsname
@@ -7423,7 +7512,7 @@ error_and_umount() {
 }
 
 test_105() {
-       cleanup
+       cleanup -f
        reformat
        setup
        mkdir -p $TMP/$tdir
@@ -7454,6 +7543,32 @@ test_105() {
 }
 run_test 105 "check file creation for ro and rw bind mnt pt"
 
+test_106() {
+       local repeat=5
+
+       reformat
+       setupall
+       mkdir -p $DIR/$tdir || error "create $tdir failed"
+       lfs setstripe -c 1 -i 0 $DIR/$tdir
+#define OBD_FAIL_CAT_RECORDS                        0x1312
+       do_facet mds1 $LCTL set_param fail_loc=0x1312 fail_val=$repeat
+
+       for ((i = 1; i <= $repeat; i++)); do
+
+               #one full plain llog
+               createmany -o $DIR/$tdir/f- 64768
+
+               createmany -u $DIR/$tdir/f- 64768
+       done
+       wait_delete_completed $((TIMEOUT * 7))
+#ASSERTION osp_sync_thread() ( thread->t_flags != SVC_RUNNING ) failed
+#shows that osp code is buggy
+       do_facet mds1 $LCTL set_param fail_loc=0 fail_val=0
+
+       cleanupall
+}
+run_test 106 "check osp llog processing when catalog is wrapped"
+
 test_107() {
        [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.10.50) ]] ||
                { skip "Need MDS version > 2.10.50"; return; }