Whamcloud - gitweb
- landed b_hd_cray_merge3
[fs/lustre-release.git] / lustre / tests / replay-dual.sh
index 665dbbe..bd5a748 100755 (executable)
@@ -18,7 +18,7 @@ gen_config() {
         add_lmv lmv1_svc
         for mds in `mds_list`; do
             MDSDEV=$TMP/${mds}-`hostname`
-            add_mds $mds --dev $MDSDEV --size $MDSSIZE  --lmv lmv1_svc
+            add_mds $mds --dev $MDSDEV --size $MDSSIZE --lmv lmv1_svc
         done
         add_lov_to_lmv lov1 lmv1_svc --stripe_sz $STRIPE_BYTES \
            --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
@@ -28,7 +28,6 @@ gen_config() {
         add_lov lov1 mds1 --stripe_sz $STRIPE_BYTES \
            --stripe_cnt $STRIPES_PER_OBJ --stripe_pattern 0
        MDS=mds1_svc
-
     fi
 
     add_ost ost --lov lov1 --dev $OSTDEV --size $OSTSIZE --failover
@@ -36,8 +35,6 @@ gen_config() {
     add_client client  ${MDS} --lov lov1 --path $MOUNT
 }
 
-
-
 build_test_filter
 
 SETUP=${SETUP:-"setup"}
@@ -54,9 +51,20 @@ cleanup() {
     umount $MOUNT2 || true
     umount $MOUNT || true
     rmmod llite
+    
+    # b=3941
+    # In mds recovery, the mds will clear orphans in ost by 
+    # mds_lov_clear_orphan, which will sent the request to ost and waiting for
+    # the reply, if we stop mds at this time, we will got the obd_refcount > 1 
+    # errors, because mds_lov_clear_orphan grab a export of mds, 
+    # so the obd_refcount of mds will not be zero. So, wait a while before
+    # stop mds. This bug needs further work.
     for mds in `mds_list`; do
+       sleep 5
        stop $mds ${FORCE} $MDSLCONFARGS
     done
+    stop_lgssd
+    stop_lsvcgssd
     stop ost2 ${FORCE}
     stop ost ${FORCE}  --dump cleanup-dual.log
 }
@@ -69,6 +77,8 @@ fi
 
 setup() {
     gen_config
+
+    start_krb5_kdc || exit 1
     start ost --reformat $OSTLCONFARGS 
     PINGER=`cat /proc/fs/lustre/pinger`
 
@@ -79,6 +89,8 @@ setup() {
     fi
 
     start ost2 --reformat $OSTLCONFARGS 
+    start_lsvcgssd || exit 2
+    start_lgssd || exit 3
     [ "$DAEMONFILE" ] && $LCTL debug_daemon start $DAEMONFILE $DAEMONSIZE
     for mds in `mds_list`; do
        start $mds --reformat $MDSLCONFARGS
@@ -342,6 +354,7 @@ test_14() {
     facet_failover mds1
     # expect failover to fail
     df $MOUNT && return 1
+    sleep 1
 
     # first 25 files shouuld have been
     # replayed
@@ -361,6 +374,7 @@ test_15() {
 
     facet_failover mds1
     df $MOUNT || return 1
+    sleep 1
 
     unlinkmany $MOUNT1/$tfile- 25 || return 2
 
@@ -378,6 +392,7 @@ test_16() {
     sleep $TIMEOUT
     facet_failover mds1
     df $MOUNT || return 1
+    sleep 1
 
     unlinkmany $MOUNT1/$tfile- 25 || return 2
 
@@ -400,6 +415,7 @@ test_17() {
     sleep $TIMEOUT
     facet_failover ost
     df $MOUNT || return 1
+    sleep 1
 
     unlinkmany $MOUNT1/$tfile- 25 || return 2
 
@@ -428,7 +444,6 @@ test_18 () {
 }
 run_test 18 "replay open, Abort recovery, don't assert (3892)"
 
-
 # cleanup with blocked enqueue fails until timer elapses (MDS busy), wait for
 # itexport NOW=0