Whamcloud - gitweb
LU-14090 mgs: no local logs flag
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 2de8aa6..f540da2 100644 (file)
@@ -20,9 +20,7 @@ ALWAYS_EXCEPT="$ALWAYS_EXCEPT  110 115"
 
 if $SHARED_KEY; then
        # bug number for skipped tests: LU-9795 (all below)
-       ALWAYS_EXCEPT="$ALWAYS_EXCEPT   0       31      32a     32d     35a"
-       ALWAYS_EXCEPT="$ALWAYS_EXCEPT   53a     53b     54b     76a     76b"
-       ALWAYS_EXCEPT="$ALWAYS_EXCEPT   76c     76d     78      103"
+       ALWAYS_EXCEPT="$ALWAYS_EXCEPT   84      86      103"
 fi
 
 if ! combined_mgs_mds; then
@@ -6871,7 +6869,7 @@ check_uuid_on_ost() {
 
 check_uuid_on_mdt() {
        local nid=$1
-       do_facet $SINGLEMDS "$LCTL get_param mdt.${FSNAME}*.exports.'$nid'.uuid"
+       do_facet $SINGLEMDS "$LCTL get_param mdt.${mds1_svc}*.exports.'$nid'.uuid"
 }
 
 test_91() {
@@ -6915,6 +6913,7 @@ test_91() {
        echo "evict $nid"
        do_facet $SINGLEMDS \
                "$LCTL set_param -n mdt.${mds1_svc}.evict_client nid:$nid"
+       sleep 1 # eviction above is async, give it some time to proceed
 
        found=$(check_uuid_on_mdt $nid | grep $uuid)
        [ -n "$found" ] && error "found $uuid $nid on MDT"
@@ -8450,6 +8449,8 @@ test_112() {
        (( $val == 1 )) || error "obdfilter.$FSNAME-OST0001*.no_precreate=$val"
 
        mount_client $MOUNT || error "mount client failed"
+       wait_osc_import_state mds1 ost1 FULL
+       wait_osc_import_state client ost1 FULL
        wait_osc_import_state client ost2 FULL
 
        $LFS setstripe -i 0 $DIR/$tfile.0 ||
@@ -8461,6 +8462,8 @@ test_112() {
        sleep_maxage
        $LFS setstripe -i 1 $DIR/$tfile.2 ||
                error "failed to create $tfile.2 on ost1 facet"
+       # files not cleaned with ONLY_REPEAT because of client unmount below
+       rm -f $DIR/$tfile.[012]
        stop_ost2 || error "stop ost2 facet failed"
        cleanup
 }
@@ -8677,11 +8680,15 @@ test_123ab() {
 
        local yaml
        local orig_val
+       local mgs_arg=""
+
+       [[ $MGS_VERSION -gt $(version_code 2.13.54) ]] ||
+               mgs_arg="--device MGS"
 
        orig_val=$(do_facet mgs $LCTL get_param jobid_name)
        do_facet mgs $LCTL set_param -P jobid_name="TESTNAME"
 
-       yaml=$(do_facet mgs $LCTL --device MGS llog_print params |
+       yaml=$(do_facet mgs $LCTL $mgs_arg llog_print params |
               grep jobid_name | tail -n 1)
 
        local param=$(awk '{ print $10 }' <<< "$yaml")
@@ -8700,12 +8707,16 @@ test_123ac() { # LU-11566
 
        local start=10
        local end=50
+       local mgs_arg=""
+
+       [[ $MGS_VERSION -gt $(version_code 2.13.54) ]] ||
+               mgs_arg="--device MGS"
 
        [ -d $MOUNT/.lustre ] || setup
 
        # - { index: 10, event: add_uuid, nid: 192.168.20.1@tcp(0x20000c0a81401,
        #     node: 192.168.20.1@tcp }
-       do_facet mgs $LCTL --device MGS \
+       do_facet mgs $LCTL $mgs_arg \
                llog_print --start $start --end $end $FSNAME-client | tr -d , |
                while read DASH BRACE INDEX idx EVENT BLAH BLAH BLAH; do
                (( idx >= start )) || error "llog_print index $idx < $start"
@@ -8745,26 +8756,30 @@ test_123ae() { # LU-11566
        [ -d $MOUNT/.lustre ] || setupall
 
        local max=$($LCTL get_param -n osc.*-OST0000-*.max_dirty_mb | head -1)
+       local mgs_arg=""
+
+       [[ $MGS_VERSION -gt $(version_code 2.13.54) ]] ||
+               mgs_arg="--device MGS"
 
        if do_facet mgs "$LCTL help llog_cancel" 2>&1| grep -q -- --log_id; then
                # save one set_param -P record in case none exist
                do_facet mgs $LCTL set_param -P osc.*.max_dirty_mb=$max
 
                local log=params
-               local orig=$(do_facet mgs $LCTL --device MGS llog_print $log |
+               local orig=$(do_facet mgs $LCTL $mgs_arg llog_print $log |
                             tail -1 | awk '{ print $4 }' | tr -d , )
                do_facet mgs $LCTL set_param -P osc.*.max_dirty_mb=$max
-               do_facet mgs $LCTL --device MGS llog_print $log | tail -1 |
+               do_facet mgs $LCTL $mgs_arg llog_print $log | tail -1 |
                        grep "parameter: osc.*.max_dirty_mb" ||
                        error "new set_param -P wasn't stored in params log"
 
                # - { index: 71, event: set_param, device: general,
                #     param: osc.*.max_dirty_mb, value: 256 }
-               local id=$(do_facet mgs $LCTL --device MGS llog_print $log |
+               local id=$(do_facet mgs $LCTL $mgs_arg llog_print $log |
                           tail -1 | awk '{ print $4 }' | tr -d , )
 
-               do_facet mgs $LCTL --device MGS llog_cancel $log --log_idx=$id
-               local new=$(do_facet mgs $LCTL --device MGS llog_print $log |
+               do_facet mgs $LCTL $mgs_arg llog_cancel $log --log_idx=$id
+               local new=$(do_facet mgs $LCTL $mgs_arg llog_print $log |
                            tail -1 | awk '{ print $4 }' | tr -d , )
                (( new == orig )) ||
                        error "new llog_cancel now $new, not at $orig records"
@@ -8890,6 +8905,12 @@ test_124()
        [ -z $mds2failover_HOST ] && skip "needs MDT failover setup"
 
        setup
+       do_facet mgs $LCTL --device MGS llog_print $FSNAME-client |
+               grep 1.2.3.4@tcp && error "Should not be fake nid"
+       do_facet mgs $LCTL conf_param $FSNAME-MDT0001.failover.node=1.2.3.4@tcp\
+               || error "Set params error"
+       do_facet mgs $LCTL --device MGS llog_print $FSNAME-client |
+               grep 1.2.3.4@tcp || error "Fake nid should be added"
        cleanup
 
        load_modules
@@ -9028,7 +9049,7 @@ test_125()
 
                echo "Before: ${facet} ${device} ${pre_max_sectors} ${max_hw_sectors}"
 
-               do_facet ${facet} "libtool execute l_tunedisk ${device}"
+               do_facet ${facet} "l_tunedisk ${device}"
 
                # Value after l_tunedisk
                local post_max_sectors=$(get_max_sectors_kb ${facet} ${device})
@@ -9104,6 +9125,43 @@ test_127() {
 }
 run_test 127 "direct io overwrite on full ost"
 
+test_128()
+{
+       combined_mgs_mds && skip "need separate mgs device"
+       [ "$ost2_FSTYPE" == zfs ] && import_zpool ost2
+
+       format_ost 2
+       # Try to apply nolocallogs to the virgin OST. Should fail.
+       do_facet ost2 "$TUNEFS --nolocallogs $(ostdevname 2)" &&
+               error "nolocallogs should not be allowed on the virgin target"
+
+       setupall
+       stopall
+
+       [ "$ost1_FSTYPE" == zfs ] && import_zpool ost1
+       # Start OST without MGS (local configs)
+       do_facet ost1 "$TUNEFS --dryrun $(ostdevname 1)"
+       start_ost || error "unable to start OST1"
+       stop_ost || error "Unable to stop OST1"
+
+       [ "$ost1_FSTYPE" == zfs ] && import_zpool ost1
+       # Do not allow reading local configs, should fail
+       do_facet ost1 "$TUNEFS --nolocallogs $(ostdevname 1)" ||
+               error "Can not set nolocallogs"
+       start_ost && error "OST1 started, but should fail"
+
+       # Connect to MGS successfully, reset nolocallogs flag
+       [ "$ost1_FSTYPE" == zfs ] && import_zpool ost1
+       start_mgs || error "unable to start MGS"
+       start_ost || error "unable to start OST1"
+
+       do_facet ost1 "$TUNEFS --dryrun $(ostdevname 1)" | grep "nolocallogs" &&
+               error "nolocallogs expected to be reset"
+
+       stop_ost || error "Unable to stop OST1"
+}
+run_test 128 "Force using remote logs with --nolocallogs"
+
 if ! combined_mgs_mds ; then
        stop mgs
 fi