Whamcloud - gitweb
LU-12775 test: reorder 'tar' command options
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 898c7ca..0ca6ce9 100644 (file)
@@ -15,7 +15,7 @@ init_logging
 ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT 32newtarball"
 
 # bug number for skipped test: LU-11915
-ALWAYS_EXCEPT="$ALWAYS_EXCEPT  110"
+ALWAYS_EXCEPT="$ALWAYS_EXCEPT  110 115"
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
 if $SHARED_KEY; then
@@ -175,16 +175,11 @@ stop_ost2() {
 }
 
 mount_client() {
-       local MOUNTPATH=$1
-       echo "mount $FSNAME on ${MOUNTPATH}....."
-       zconf_mount $(hostname) $MOUNTPATH || return 96
-}
+       local mountpath=$1
+       local mountopt="$2"
 
-remount_client() {
-       local mountopt="remount,$1"
-       local MOUNTPATH=$2
-       echo "remount '$1' lustre on ${MOUNTPATH}....."
-       zconf_mount $(hostname) $MOUNTPATH "$mountopt" || return 96
+       echo "mount $FSNAME ${mountopt:+with opts $mountopt} on $mountpath....."
+       zconf_mount $HOSTNAME $mountpath $mountopt || return 96
 }
 
 umount_client() {
@@ -706,10 +701,10 @@ test_20() {
        mount_client $MOUNT || error "mount_client $MOUNT failed"
        check_mount || error "check_mount failed"
        rm -f $DIR/$tfile || error "remove $DIR/$tfile failed."
-       remount_client ro $MOUNT || error "remount_client with ro failed"
+       mount_client $MOUNT remount,ro || error "remount client with ro failed"
        touch $DIR/$tfile && error "$DIR/$tfile created incorrectly"
        [ -e $DIR/$tfile ] && error "$DIR/$tfile exists incorrectly"
-       remount_client rw $MOUNT || error "remount_client with rw failed"
+       mount_client $MOUNT remount,rw || error "remount client with rw failed"
        touch $DIR/$tfile || error "touch $DIR/$tfile failed"
        MCNT=$(grep -c $MOUNT' ' /etc/mtab)
        [ "$MCNT" -ne 1 ] && error "$MOUNT in /etc/mtab $MCNT times"
@@ -762,12 +757,18 @@ test_21d() {
        start_mds || error "MDS start failed"
        wait_osc_import_state mds ost2 FULL
 
+       local zkeeper=${KEEP_ZPOOL}
+       stack_trap "KEEP_ZPOOL=$zkeeper" EXIT
+       KEEP_ZPOOL="true"
+
        stop_ost || error "Unable to stop OST1"
        stop_ost2 || error "Unable to stop OST2"
        stop_mds || error "Unable to stop MDS"
        stop_mgs
        #writeconf to remove all ost2 traces for subsequent tests
        writeconf_or_reformat
+       KEEP_ZPOOL="${zkeeper}"
+
        start_mgs || error "unable to start MGS"
 }
 run_test 21d "start mgs then ost and then mds"
@@ -2136,9 +2137,9 @@ t32_test() {
                        $LFS setdirstripe -D -c2 $tmp/mnt/lustre/striped_dir
 
                        pushd $tmp/mnt/lustre
-                       tar -cf - . --exclude=./striped_dir \
-                                   --exclude=./striped_dir_old \
-                                   --exclude=./remote_dir |
+                       tar -c --exclude=./striped_dir \
+                               --exclude=./striped_dir_old \
+                               --exclude=./remote_dir -f - .|
                                tar -xvf - -C striped_dir 1>/dev/null || {
                                error_noexit "cp to striped dir failed"
                                return 1
@@ -3511,16 +3512,13 @@ test_48() { # bz-17636 LU-7473
        # LOV EA, and so on. These EA will use some EA space that is shared by
        # ACL entries. So here we only check some reasonable ACL entries count,
        # instead of the max number that is calculated from the max_ea_size.
-       if [ "$MDS1_VERSION" -lt $(version_code 2.8.57) ];
-       then
+       if [ "$MDS1_VERSION" -lt $(version_code 2.8.57) ]; then
                count=28        # hard coded of RPC protocol
-       elif [ "$mds1_FSTYPE" != ldiskfs ]; then
-               count=4000      # max_num 4091 max_ea_size = ~65536
-       elif ! large_xattr_enabled; then
-               count=450       # max_num 497 max_ea_size = 4012
-       else
+       elif large_xattr_enabled; then
                count=4500      # max_num 8187 max_ea_size = 65452
-                               # not create too much (>5000) to save test time
+                               # not create too many (4500) to save test time
+       else
+               count=450       # max_num 497 max_ea_size = 4012
        fi
 
        echo "It is expected to hold at least $count ACL entries"
@@ -5864,22 +5862,15 @@ test_81() { # LU-4665
 
        # Check max_easize.
        local max_easize=$($LCTL get_param -n llite.*.max_easize)
-       if [ $MDS1_VERSION -lt $(version_code 2.12.51) ]
-       then
-               [[ $max_easize -eq 128 ]] ||
-                       error "max_easize is $max_easize, should be 128 bytes"
+       # 65452 is XATTR_SIZE_MAX less ldiskfs ea overhead
+       if large_xattr_enabled; then
+               [[ $max_easize -ge 65452 ]] ||
+                       error "max_easize is $max_easize, should be at least 65452 bytes"
        else
                # LU-11868
-               # 4012 is 4096 - ldiskfs ea overhead
+               # 4012 is 4096 less ldiskfs ea overhead
                [[ $max_easize -ge 4012 ]] ||
-               error "max_easize is $max_easize, should be at least 4012 bytes"
-
-               # 65452 is XATTR_SIZE_MAX - ldiskfs ea overhead
-               if large_xattr_enabled;
-               then
-                       [[ $max_easize -ge 65452 ]] ||
-                       error "max_easize is $max_easize, should be at least 65452 bytes"
-               fi
+                       error "max_easize is $max_easize, should be at least 4012 bytes"
        fi
 
        restore_ostindex
@@ -6012,9 +6003,6 @@ 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
 }
 
@@ -6054,9 +6042,6 @@ 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"
@@ -6138,7 +6123,7 @@ test_83() {
                error "format ost1 error"
 
        if ! test -b $dev; then
-               mnt_opts=$(csa_add "$OST_MOUNT_OPTS" -o loop)
+               mnt_opts=$(csa_add "$OST_MOUNT_FS_OPTS" -o loop)
        fi
        echo "mnt_opts $mnt_opts"
        do_facet ost1 mount -t "$ost1_FSTYPE" $dev \
@@ -6376,7 +6361,7 @@ test_87() { #LU-6544
                       more than $left_size-byte space left in inode."
        echo "Verified: at most $left_size-byte space left in inode."
 
-       umount_ldiskfs $SINGLEMDS
+       unmount_ldiskfs $SINGLEMDS
 
        for i in $(seq $OSTCOUNT); do
                stop ost$i -f || error "stop ost$i failed"
@@ -7271,7 +7256,7 @@ test_98()
        for ((x = 1; x <= 400; x++)); do
                mountopt="$mountopt,user_xattr"
        done
-       remount_client $mountopt $MOUNT  2>&1 | grep "too long" ||
+       mount_client $MOUNT remount,$mountopt 2>&1 | grep "too long" ||
                error "Buffer overflow check failed"
        cleanup || error "cleanup failed"
 }
@@ -7320,9 +7305,9 @@ test_100() {
        # Desired output
        # MGS:
        #     0@lo
-       # lustre-MDT0000:
+       # $FSNAME-MDT0000:
        #     0@lo
-       # lustre-OST0000:
+       # $FSNAME-OST0000:
        #     0@lo
        do_facet mgs 'lshowmount -v' | awk 'BEGIN {NR == 0; rc=1} /MGS:/ {rc=0}
                END {exit rc}' || error "lshowmount have no output MGS"
@@ -7414,34 +7399,34 @@ test_renamefs() {
        echo "rename $FSNAME to $newname"
 
        if ! combined_mgs_mds ; then
-               local facet=$(mgsdevname)
+               local dev=$(mgsdevname)
 
                do_facet mgs \
-                       "$TUNEFS --fsname=$newname --rename=$FSNAME -v $facet"||
-                       error "(7) Fail to rename MGS"
-               if [ "$(facet_fstype $facet)" = "zfs" ]; then
+                       "$TUNEFS --fsname=$newname --rename=$FSNAME -v $dev" ||
+                               error "(7) Fail to rename MGS"
+               if [ "$(facet_fstype mgs)" = "zfs" ]; then
                        reimport_zpool mgs $newname-mgs
                fi
        fi
 
        for num in $(seq $MDSCOUNT); do
-               local facet=$(mdsdevname $num)
+               local dev=$(mdsdevname $num)
 
                do_facet mds${num} \
-                       "$TUNEFS --fsname=$newname --rename=$FSNAME -v $facet"||
-                       error "(8) Fail to rename MDT $num"
-               if [ "$(facet_fstype $facet)" = "zfs" ]; then
+                       "$TUNEFS --fsname=$newname --rename=$FSNAME -v $dev" ||
+                               error "(8) Fail to rename MDT $num"
+               if [ "$(facet_fstype mds${num})" = "zfs" ]; then
                        reimport_zpool mds${num} $newname-mdt${num}
                fi
        done
 
        for num in $(seq $OSTCOUNT); do
-               local facet=$(ostdevname $num)
+               local dev=$(ostdevname $num)
 
                do_facet ost${num} \
-                       "$TUNEFS --fsname=$newname --rename=$FSNAME -v $facet"||
-                       error "(9) Fail to rename OST $num"
-               if [ "$(facet_fstype $facet)" = "zfs" ]; then
+                       "$TUNEFS --fsname=$newname --rename=$FSNAME -v $dev" ||
+                               error "(9) Fail to rename OST $num"
+               if [ "$(facet_fstype ost${num})" = "zfs" ]; then
                        reimport_zpool ost${num} $newname-ost${num}
                fi
        done
@@ -7485,9 +7470,6 @@ 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
@@ -7499,9 +7481,6 @@ test_103() {
        $LFS 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
 
@@ -7511,9 +7490,6 @@ 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
@@ -7522,9 +7498,6 @@ test_103() {
 
        $LFS 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
 
@@ -7533,14 +7506,8 @@ 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
@@ -7551,7 +7518,7 @@ test_103() {
 }
 run_test 103 "rename filesystem name"
 
-test_104() { # LU-6952
+test_104a() { # LU-6952
        local mds_mountopts=$MDS_MOUNT_OPTS
        local ost_mountopts=$OST_MOUNT_OPTS
        local mds_mountfsopts=$MDS_MOUNT_FS_OPTS
@@ -7601,7 +7568,22 @@ test_104() { # LU-6952
        OST_MOUNT_OPTS=$ost_mountopts
        MDS_MOUNT_FS_OPTS=$mds_mountfsopts
 }
-run_test 104 "Make sure user defined options are reflected in mount"
+run_test 104a "Make sure user defined options are reflected in mount"
+
+test_104b() { # LU-12859
+       mount_client $MOUNT3 flock,localflock
+       stack_trap "umount_client $MOUNT3" EXIT
+       mount | grep "$MOUNT3 .*,flock" && error "flock is still set"
+       mount | grep "$MOUNT3 .*,localflock" || error "localflock is not set"
+       umount_client $MOUNT3
+       mount_client $MOUNT3 localflock,flock
+       mount | grep "$MOUNT3 .*,localflock" && error "localflock is still set"
+       mount | grep "$MOUNT3 .*,flock" || error "flock is not set"
+       umount_client $MOUNT3
+       mount_client $MOUNT3 localflock,flock,noflock
+       flock_is_enabled $MOUNT3 && error "some flock is still enabled" || true
+}
+run_test 104b "Mount uses last flock argument"
 
 error_and_umount() {
        umount $TMP/$tdir
@@ -7819,10 +7801,10 @@ test_108a() {
 
        echo "changing server nid..."
        $rcmd mount -t lustre -o nosvc lustre-mdt1/mdt1 $tmp/mnt/mdt1
-       $rcmd lctl replace_nids lustre-MDT0000 $nid
-       $rcmd lctl replace_nids lustre-MDT0001 $nid
-       $rcmd lctl replace_nids lustre-OST0000 $nid
-       $rcmd lctl replace_nids lustre-OST0001 $nid
+       $rcmd lctl replace_nids $FSNAME-MDT0000 $nid
+       $rcmd lctl replace_nids $FSNAME-MDT0001 $nid
+       $rcmd lctl replace_nids $FSNAME-OST0000 $nid
+       $rcmd lctl replace_nids $FSNAME-OST0001 $nid
        $rcmd umount $tmp/mnt/mdt1
 
        for facet in $facets; do
@@ -7881,10 +7863,10 @@ test_108b() {
 
        echo "changing server nid..."
        $rcmd mount -t lustre -o nosvc,loop $tmp/images/mdt1 $tmp/mnt/mdt1
-       $rcmd lctl replace_nids lustre-MDT0000 $nid
-       $rcmd lctl replace_nids lustre-MDT0001 $nid
-       $rcmd lctl replace_nids lustre-OST0000 $nid
-       $rcmd lctl replace_nids lustre-OST0001 $nid
+       $rcmd lctl replace_nids $FSNAME-MDT0000 $nid
+       $rcmd lctl replace_nids $FSNAME-MDT0001 $nid
+       $rcmd lctl replace_nids $FSNAME-OST0000 $nid
+       $rcmd lctl replace_nids $FSNAME-OST0001 $nid
        $rcmd umount $tmp/mnt/mdt1
 
        for facet in $facets; do
@@ -7894,7 +7876,7 @@ test_108b() {
        done
 
        for facet in $scrub_list; do
-               $rcmd $LCTL lfsck_start -M lustre-$facet -t scrub ||
+               $rcmd $LCTL lfsck_start -M $FSNAME-$facet -t scrub ||
                        error "failed to start OI scrub on $facet"
        done
 
@@ -8014,18 +7996,12 @@ test_109a()
        reformat
        setup_noconfig
        client_up || error "client_up failed"
-       #pool commands requires a client on MGS for procfs interfaces
-       if ! combined_mgs_mds ; then
-               mount_mgs_client
-               stack_trap umount_mgs_client EXIT
-       fi
 
        #
        # set number of permanent parameters
        #
        test_109_set_params $FSNAME
 
-       combined_mgs_mds || umount_mgs_client
        umount_client $MOUNT || error "umount_client failed"
        stop_ost || error "stop_ost failed"
        stop_mds || error "stop_mds failed"
@@ -8040,7 +8016,6 @@ test_109a()
                error "failed to clear client config"
 
        setup_noconfig
-       combined_mgs_mds || mount_mgs_client
 
        #
        # check that configurations are intact
@@ -8052,7 +8027,6 @@ test_109a()
        #
        destroy_test_pools || error "destroy test pools failed"
 
-       combined_mgs_mds || umount_mgs_client
        cleanup
 }
 run_test 109a "test lctl clear_conf fsname"
@@ -8068,18 +8042,12 @@ test_109b()
        reformat
        setup_noconfig
        client_up || error "client_up failed"
-       #pool commands requires a client on MGS for procfs interfaces
-       if ! combined_mgs_mds ; then
-               mount_mgs_client
-               stack_trap umount_mgs_client EXIT
-       fi
 
        #
        # set number of permanent parameters
        #
        test_109_set_params $FSNAME
 
-       combined_mgs_mds || umount_mgs_client
        umount_client $MOUNT || error "umount_client failed"
        stop_ost || error "stop_ost failed"
        stop_mds || error "stop_mds failed"
@@ -8094,7 +8062,6 @@ test_109b()
                error "failed to clear client config"
 
        setup_noconfig
-       combined_mgs_mds || mount_mgs_client
        #
        # check that configurations are intact
        #
@@ -8105,7 +8072,6 @@ test_109b()
        #
        destroy_test_pools || error "destroy test pools failed"
 
-       combined_mgs_mds || umount_mgs_client
        cleanup
 }
 run_test 109b "test lctl clear_conf one config"
@@ -8336,6 +8302,32 @@ test_111() {
 }
 run_test 111 "Adding large_dir with over 2GB directory"
 
+test_112() {
+       start_mds || error "MDS start failed"
+       start_ost || error "OSS start failed"
+       echo "start ost2 service on $(facet_active_host ost2)"
+       start ost2 $(ostdevname 2) $(csa_add "$OST_MOUNT_OPTS" -o no_precreate) ||
+               error "start ost2 facet failed"
+       local val=$(do_facet ost2 \
+                  "$LCTL get_param -n obdfilter.$FSNAME-OST0001*.no_precreate")
+       (( $val == 1 )) || error "obdfilter.$FSNAME-OST0001*.no_precreate=$val"
+
+       mount_client $MOUNT || error "mount client failed"
+       wait_osc_import_state client ost2 FULL
+
+       $LFS setstripe -i 0 $DIR/$tfile.0 ||
+               error "problem creating $tfile.0 on OST0000"
+       $LFS setstripe -i 1 $DIR/$tfile.1 && $LFS getstripe $DIR/$tfile.1 &&
+               (( $($LFS getstripe -i $DIR/$tfile.1) == 1 )) &&
+               error "allowed to create $tfile.1 on OST0001"
+       do_facet ost2 $LCTL set_param obdfilter.*.no_precreate=0
+       sleep_maxage
+       $LFS setstripe -i 1 $DIR/$tfile.2 ||
+               error "failed to create $tfile.2 on ost1 facet"
+       stop_ost2 || error "stop ost2 facet failed"
+       cleanup
+}
+run_test 112 "mount OST with nocreate option"
 
 cleanup_115()
 {
@@ -8361,6 +8353,14 @@ test_115() {
        IMAGESIZE=$((3072 << 30)) # 3072 GiB
 
        stopall
+
+       echo "client1: "
+       lctl dl
+       mount | grep lustre
+       echo "mds1: "
+       do_facet mds1 "hostname; ifconfig; lctl dl; mount"
+       echo "ost1: "
+       do_facet ost1 "hostname; ifconfig; lctl dl; mount"
        # We need MDT size 3072GB, because it is smallest
        # partition that can store 2B inodes
        do_facet $SINGLEMDS "mkdir -p $TMP/$tdir"
@@ -8373,9 +8373,9 @@ test_115() {
        local mdsdev=$(do_facet $SINGLEMDS "losetup -f")
        do_facet $SINGLEMDS "losetup $mdsdev $mdsimgname"
 
-       local mds_opts="$(mkfs_opts mds1 $(mdsdevname 1)) --device-size=$IMAGESIZE   \
+       local mds_opts="$(mkfs_opts mds1 $(mdsdevname 1))        \
                --mkfsoptions='-O ea_inode,^resize_inode,meta_bg \
-               -N 2247484000 -E lazy_itable_init'"
+               -N 2247484000 -E lazy_itable_init' --device-size=$IMAGESIZE"
        add mds1 $mds_opts --mgs --reformat $mdsdev ||
                skip_env "format large MDT failed"
        opts="$(mkfs_opts ost1 $(ostdevname 1)) \
@@ -8538,7 +8538,7 @@ test_123ab() {
        local orig_val
 
        orig_val=$(do_facet mgs $LCTL get_param jobid_name)
-       do_facet mgs $LCTL set_param -P jobid_name="testname"
+       do_facet mgs $LCTL set_param -P jobid_name="TESTNAME"
 
        yaml=$(do_facet mgs $LCTL --device MGS llog_print params |
               grep jobid_name | tail -n 1)
@@ -8547,7 +8547,7 @@ test_123ab() {
        local val=$(awk '{ print $12 }' <<< "$yaml")
        #return to the default
        do_facet mgs $LCTL set_param -P jobid_name=$orig_val
-       [ $val = "testname" ] || error "bad value: $val"
+       [ $val = "TESTNAME" ] || error "bad value: $val"
        [ $param = "jobid_name," ] || error "Bad param: $param"
 }
 run_test 123ab "llog_print params output values from set_param -P"
@@ -8663,7 +8663,7 @@ test_123F() {
 
        # set jobid_var to a different value for test
        local orig_val=$(do_facet mgs $LCTL get_param jobid_var)
-       do_facet mgs $LCTL set_param -P jobid_var="testname"
+       do_facet mgs $LCTL set_param -P jobid_var="TESTNAME"
 
        for i in $cfgfiles params; do
                do_facet mgs "lctl --device MGS llog_print ${i} >> $yaml_file"
@@ -8686,8 +8686,8 @@ test_123F() {
        local set_val=$(do_facet mgs $LCTL get_param jobid_var)
        do_facet mgs $LCTL set_param -P $orig_val
 
-       [ $set_val == "jobid_var=testname" ] ||
-               error "$set_val is not testname"
+       [ $set_val == "jobid_var=TESTNAME" ] ||
+               error "$set_val is not TESTNAME"
 
        do_facet mgs rm "$yaml_file"
        cleanup