Whamcloud - gitweb
LU-17914 lnet: Fix erroneous net set error
[fs/lustre-release.git] / lustre / tests / sanity-lsnapshot.sh
index bb699c2..8aa21c1 100755 (executable)
@@ -7,22 +7,20 @@
 set -e
 
 ONLY=${ONLY:-"$*"}
-ALWAYS_EXCEPT="$SANITY_LSNAPSHOT_EXCEPT"
-[ "$SLOW" = "no" ] && EXCEPT_SLOW=""
-# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
-LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
+LUSTRE=${LUSTRE:-$(dirname $0)/..}
 . $LUSTRE/tests/test-framework.sh
-init_test_env $@
-. ${CONFIG:=$LUSTRE/tests/cfg/$NAME.sh}
+init_test_env "$@"
 init_logging
 
-[[ $(lustre_version_code mds1) -lt $(version_code 2.9.55) ]] ||
-[[ $(lustre_version_code ost1) -lt $(version_code 2.9.55) ]] &&
-       skip "Need server version at least 2.9.55" && exit 0
-[[ $(facet_fstype mds1) = "ldiskfs" ]] ||
-[[ $(facet_fstype ost1) = "ldiskfs" ]] &&
-       skip "can't test snapshots with ldiskfs" && exit 0
+ALWAYS_EXCEPT="$SANITY_LSNAPSHOT_EXCEPT "
+build_test_filter
+
+[[ "$MDS1_VERSION" -lt $(version_code 2.9.55) ]] ||
+[[ "$OST1_VERSION" -lt $(version_code 2.9.55) ]] &&
+       skip "Need server version at least 2.9.55"
+[[ "$mds1_FSTYPE" = "ldiskfs" ]] || [[ "$ost1_FSTYPE" = "ldiskfs" ]] &&
+       skip "ZFS only test"
 
 require_dsh_mds || exit 0
 require_dsh_ost || exit 0
@@ -34,7 +32,6 @@ do_nodes $(comma_list $(mdts_nodes)) $LCTL set_param debug=+snapshot
 
 lss_gen_conf
 lss_cleanup
-build_test_filter
 
 test_0() {
        echo "Create lss_0_0 with default"
@@ -100,7 +97,7 @@ test_1a() {
                lss_err "(5) Fail to mount lss_1a_0"
 
        echo "Check whether mounted (2)"
-       local mcount=$(lsnapshot_list -n lss_1a_0 -d | grep "not mount" | wc -l)
+       local mcount=$(lsnapshot_list -n lss_1a_0 -d | grep -c "not mount")
        [[ $mcount -ne 0 ]] && {
                if combined_mgs_mds ; then
                        lsnapshot_list -n lss_1a_0 -d
@@ -182,17 +179,27 @@ test_1b() {
                lss_err "(5) Expect 'mounted', got 'not mount' for lss_1b_0"
        }
 
+       echo "Remount lss_1b_0"
+       lsnapshot_mount -n lss_1b_0 &&
+               lss_err "(6) Mount already mounted snapshot should fail"
+
+       echo "Check whether mounted (3)"
+       lsnapshot_list -n lss_1b_0 -d | grep "not mount" && {
+               lsnapshot_list -n lss_1b_0 -d
+               lss_err "(7) Expect 'mounted', got 'not mount' for lss_1b_0"
+       }
+
        echo "umount lss_1b_0"
        lsnapshot_umount -n lss_1b_0 ||
-               lss_err "(6) Fail to umount lss_1b_0"
+               lss_err "(8) Fail to umount lss_1b_0"
 
-       echo "Check whether mounted (3)"
+       echo "Check whether mounted (4)"
        lsnapshot_list -n lss_1b_0 -d | grep "mounted" && {
                lsnapshot_list -n lss_1b_0 -d
-               lss_err "(7) Expect 'not mount', got 'mounted' for lss_1b_0"
+               lss_err "(9) Expect 'not mount', got 'mounted' for lss_1b_0"
        }
 
-       setupall || lss_err "(8) Fail to setupall"
+       setupall || lss_err "(10) Fail to setupall"
 }
 run_test 1b "mount snapshot without original filesystem mounted"
 
@@ -330,9 +337,44 @@ test_3b() {
 }
 run_test 3b "modify snapshot without original filesystem mounted"
 
+test_4() { # LU-10843
+       combined_mgs_mds && skip "Combined MGS/MDS" && return
+
+       local rcmd="$LCTL get_param ldlm.namespaces.MGS.resource_count"
+
+       local exports=$(do_facet mgs "$LCTL get_param -n mgs.MGS.num_exports")
+       local rcount=$(do_facet mgs $rcmd)
+
+       echo "Remount MGT"
+       stop mgs || error "stop mgs failed"
+       start mgs $(mgsdevname) $MGS_MOUNT_OPTS || error "start mgs failed"
+
+       echo "Wait for all reconnects"
+       local CMD="$LCTL get_param -n mgs.MGS.num_exports"
+       wait_update_facet mgs "$CMD" $exports ||
+               lss_err "(1) failed to export from mgs"
+
+       wait_update_facet mgs "$rcmd" $rcount ||
+               lss_err "(2) failed to reconnect mds"
+
+       echo "Create lss_4_0"
+       lsnapshot_create -n lss_4_0 -c "'It is test_4'" ||
+               lss_err "(3) Fail to create lss_4_0"
+
+       echo "List lss_4_0"
+       lsnapshot_list -n lss_4_0 ||
+               lss_err "(4) Fail to list lss_4_0"
+
+       echo "Destroy lss_4_0"
+       lsnapshot_destroy -n lss_4_0 ||
+               lss_err "(5) Fail to destroy lss_4_0"
+
+}
+run_test 4 "create/delete snapshot after MGS remount"
+
 lss_cleanup
 do_facet mgs $LCTL set_param debug=-snapshot
 do_nodes $(comma_list $(mdts_nodes)) $LCTL set_param debug=-snapshot
-complete $SECONDS
+complete_test $SECONDS
 check_and_cleanup_lustre
 exit_status