Whamcloud - gitweb
LU-7005 tests: wait client imports fully recovered 83/15983/10
authorwang di <di.wang@intel.com>
Wed, 12 Aug 2015 06:25:05 +0000 (23:25 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 9 Oct 2015 20:28:52 +0000 (20:28 +0000)
In conf-sanity.sh 50i, it should wait client and all MDTs recover
before creating files.

Signed-off-by: Lai Siyao <lai.siyao@intel.com>
Signed-off-by: wang di <di.wang@intel.com>
Change-Id: I637ebfb6c531708e194df4c03d8657361d1b40ee
Reviewed-on: http://review.whamcloud.com/15983
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/tests/conf-sanity.sh
lustre/tests/test-framework.sh

index 4c6d347..eeef083 100644 (file)
@@ -4,8 +4,8 @@ set -e
 
 ONLY=${ONLY:-"$*"}
 
-# bug number for skipped test:     LU-7005
-ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT 50i"
+# bug number for skipped test:
+ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT"
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
 is_sles11()                                            # LU-2181
@@ -3527,6 +3527,11 @@ test_50i() {
                "$TEST" "${FSNAME}-MDT0001.mdc.active" 1 ||
                error "Unable to activate MDT2"
 
+       wait_clients_import_state ${CLIENTS:-$HOSTNAME} mds2 FULL
+       if [ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.7.60) ]
+       then
+               wait_dne_interconnect
+       fi
        $LFS mkdir -i1 $DIR/$tdir/2 || error "mkdir $DIR/$tdir/2 failed"
        # create some file
        createmany -o $DIR/$tdir/2/$tfile-%d 1 || error "create files failed"
index be6d1ec..e499d7f 100755 (executable)
@@ -5824,19 +5824,21 @@ mds_on_old_device() {
 }
 
 get_mdtosc_proc_path() {
-    local mds_facet=$1
-    local ost_label=${2:-"*OST*"}
-
-    [ "$mds_facet" = "mds" ] && mds_facet=$SINGLEMDS
-    local mdt_label=$(convert_facet2label $mds_facet)
-    local mdt_index=$(echo $mdt_label | sed -e 's/^.*-//')
-
-    if [ $(lustre_version_code $mds_facet) -le $(version_code 1.8.0) ] ||
-       mds_on_old_device $mds_facet; then
-        echo "${ost_label}-osc"
-    else
-        echo "${ost_label}-osc-${mdt_index}"
-    fi
+       local mds_facet=$1
+       local ost_label=${2:-"*OST*"}
+
+       [ "$mds_facet" = "mds" ] && mds_facet=$SINGLEMDS
+       local mdt_label=$(convert_facet2label $mds_facet)
+       local mdt_index=$(echo $mdt_label | sed -e 's/^.*-//')
+
+       if [ $(lustre_version_code $mds_facet) -le $(version_code 1.8.0) ] ||
+          mds_on_old_device $mds_facet; then
+               echo "${ost_label}-osc"
+       elif [[ $ost_label = *OST* ]]; then
+               echo "${ost_label}-osc-${mdt_index}"
+       else
+               echo "${ost_label}-osp-${mdt_index}"
+       fi
 }
 
 get_osc_import_name() {
@@ -5950,8 +5952,8 @@ _wait_osc_import_state() {
        local facet=$1
        local ost_facet=$2
        local expected=$3
-       local ost=$(get_osc_import_name $facet $ost_facet)
-       local param="osc.${ost}.ost_server_uuid"
+       local target=$(get_osc_import_name $facet $ost_facet)
+       local param="osc.${target}.ost_server_uuid"
        local params=$param
        local i=0
 
@@ -5975,6 +5977,16 @@ _wait_osc_import_state() {
                        params=$($LCTL list_param $param 2>/dev/null || true)
                done
        fi
+
+       if [[ $ost_facet = mds* ]]; then
+               # no OSP connection to itself
+               if [[ $facet = $ost_facet ]]; then
+                       return 0
+               fi
+               param="osp.${target}.mdt_server_uuid"
+               params=$param
+       fi
+
        if ! do_rpc_nodes "$(facet_active_host $facet)" \
                        wait_import_state $expected "$params" $maxtime; then
                error "import is not in ${expected} state"
@@ -6056,6 +6068,16 @@ wait_mgc_import_state() {
        fi
 }
 
+wait_dne_interconnect() {
+       local num
+
+       if [ $MDSCOUNT -gt 1 ]; then
+               for num in $(seq $MDSCOUNT); do
+                       wait_osc_import_state mds mds$num FULL
+               done
+       fi
+}
+
 get_clientmdc_proc_path() {
     echo "${1}-mdc-*"
 }