Whamcloud - gitweb
b=23588 conf-sanity.sh:test_50g - wait for new OST addition propagation to a client
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
index 544779d..a6e690b 100644 (file)
@@ -16,6 +16,12 @@ ONLY=${ONLY:-"$*"}
 ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT"
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
+if [ "$FAILURE_MODE" = "HARD" ]; then
+       CONFIG_EXCEPTIONS="24a " && \
+       echo "Except the tests: $CONFIG_EXCEPTIONS for FAILURE_MODE=$FAILURE_MODE, bug 23573" && \
+       ALWAYS_EXCEPT="$ALWAYS_EXCEPT $CONFIG_EXCEPTIONS"
+fi
+
 SRCDIR=`dirname $0`
 PATH=$PWD/$SRCDIR:$SRCDIR:$SRCDIR/../utils:$PATH
 
@@ -60,22 +66,19 @@ writeconf1() {
        stop ${facet} -f
        rm -f ${facet}active
        # who knows if/where $TUNEFS is installed?  Better reformat if it fails...
-       do_facet ${facet} "$TUNEFS --writeconf $dev" ||
+       do_facet ${facet} "$TUNEFS --quiet --writeconf $dev" ||
                { echo "tunefs failed, reformatting instead" && reformat_and_config && return 1; }
        return 0
 }
 
-writeclean() {
-       [ -e ${WCDIR}/$@ ] && rm ${WCDIR}/$@
-       true
-}
-
-writeclean_all() {
-       writeclean wc.m
-       writeclean wc.o1
-       writeclean wc.o2
+writeconf() {
+       # we need ldiskfs
+       load_modules
+       # if writeconf fails anywhere, we reformat everything
+       writeconf1 mds `mdsdevname 1` || return 0
+       writeconf1 ost1 `ostdevname 1` || return 0
+       writeconf1 ost2 `ostdevname 2` || return 0
 }
-writeclean_all
 
 gen_config() {
        # The MGS must be started before the OSTs for a new fs, so start
@@ -97,7 +100,7 @@ reformat_and_config() {
 
 start_mgs () {
        echo "start mgs"
-       start mgs $MGSDEV $mgs_MOUNT_OPTS
+       start mgs $MGSDEV $MGS_MOUNT_OPTS
 }
 
 start_mds() {
@@ -878,7 +881,9 @@ test_29() {
        fi
 
        # check MDT too
-       local MPROC="osc.$FSNAME-OST0001-osc-[M]*.active"
+       local mdtosc=$(get_mdtosc_proc_path $SINGLEMDS $FSNAME-OST0001)
+       mdtosc=${mdtosc/-MDT*/-MDT\*}
+       local MPROC="osc.$mdtosc.active"
        local MAX=30
        local WAIT=0
        while [ 1 ]; do
@@ -2093,6 +2098,8 @@ test_50g() {
        [ "$OSTCOUNT" -lt "2" ] && skip_env "$OSTCOUNT < 2, skipping" && return
        setup
        start_ost2 || error "Unable to start OST2"
+        wait_osc_import_state mds ost2 FULL
+        wait_osc_import_state client ost2 FULL
 
        local PARAM="${FSNAME}-OST0001.osc.active"
 
@@ -2201,7 +2208,9 @@ test_52() {
        [ $? -eq 0 ] || { error "Unable to create tdir"; return 4; }
        touch $TMP/modified_first
        [ $? -eq 0 ] || { error "Unable to create temporary file"; return 5; }
-       do_node $ost1node "mkdir -p $ost1tmp && touch $ost1tmp/modified_first"
+       local mtime=$(stat -c %Y $TMP/modified_first)
+       do_node $ost1node "mkdir -p $ost1tmp && touch -m -d @$mtime $ost1tmp/modified_first"
+
        [ $? -eq 0 ] || { error "Unable to create temporary file"; return 6; }
        sleep 1
 
@@ -2366,10 +2375,6 @@ test_53b() {
 }
 run_test 53b "check MDT thread count params"
 
-if ! combined_mgs_mds ; then
-       stop mgs
-fi
-
 run_llverfs()
 {
         local dir=$1
@@ -2450,6 +2455,17 @@ test_56() {
 }
 run_test 56 "check big indexes"
 
+test_57() { # bug 22656
+       local NID=$(do_facet ost1 "$LCTL get_param nis" | tail -1 | awk '{print $1}')
+       writeconf
+       do_facet ost1 "$TUNEFS --failnode=$NID `ostdevname 1`" || error "tunefs failed"
+       start_mgsmds
+       start_ost && error "OST registration from failnode should fail"
+       stop_mds
+       reformat
+}
+run_test 57 "initial registration from failnode should fail (should return errs)"
+
 count_osts() {
         do_facet mgs $LCTL get_param mgs.MGS.live.$FSNAME | grep OST | wc -l
 }
@@ -2484,6 +2500,10 @@ test_59() {
 }
 run_test 59 "writeconf mount option"
 
+
+if ! combined_mgs_mds ; then
+       stop mgs
+fi
 cleanup_gss
 equals_msg `basename $0`: test complete
 [ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG && grep -q FAIL $TESTSUITELOG && exit 1 || true