Whamcloud - gitweb
LU-9744 mdt: avoid wrong CLF_HSM_DIRTY report in ChangeLog
[fs/lustre-release.git] / lustre / tests / sanity-scrub.sh
index 9e3e216..818dc40 100644 (file)
@@ -143,6 +143,18 @@ scrub_prep() {
        done
        echo "prepared $(date)."
        cleanup_mount $MOUNT > /dev/null || error "Fail to stop client!"
+
+       # sync local transactions on every MDT
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n osd*.*MDT*.force_sync=1"
+
+       # wait for a while to cancel update logs after transactions committed.
+       sleep 3
+
+       # sync again to guarantee all things done.
+       do_nodes $(comma_list $(mdts_nodes)) \
+               "$LCTL set_param -n osd*.*MDT*.force_sync=1"
+
        for n in $(seq $MDSCOUNT); do
                echo "stop mds$n"
                stop mds$n > /dev/null || error "Fail to stop MDS$n!"
@@ -461,6 +473,10 @@ test_4b() {
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
+
+               echo "OI scrub on MDS$n status for the 1st time:"
+               do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub
        done
 
        scrub_check_data2 sanity-scrub.sh 9
@@ -473,6 +489,11 @@ test_4b() {
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
+
+               echo "OI scrub on MDS$n status for the 2nd time:"
+               do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub
+
                [ ${updated0[$n]} -lt ${updated1[$n]} ] ||
                        error "(12) Auto trigger full scrub unexpectedly"
        done
@@ -489,6 +510,11 @@ test_4b() {
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
+
+               echo "OI scrub on MDS$n status for the 3rd time:"
+               do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub
+
                [ ${updated0[$n]} -gt ${updated1[$n]} ] ||
                        error "(16) Auto trigger full scrub unexpectedly"
        done
@@ -501,8 +527,13 @@ test_4b() {
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
-               [ ${updated0[$n]} -eq ${updated1[$n]} ] ||
+               [ ${updated0[$n]} -eq ${updated1[$n]} ] || {
+                       echo "OI scrub on MDS$n status for the 4th time:"
+                       do_facet mds$n $LCTL get_param -n \
+                               osd-ldiskfs.$(facet_svc mds$n).oi_scrub
+
                        error "(18) NOT auto trigger full scrub as expected"
+               }
        done
 }
 run_test 4b "Auto trigger OI scrub if bad OI mapping was found (2)"
@@ -527,6 +558,10 @@ test_4c() {
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
+
+               echo "OI scrub on MDS$n status for the 1st time:"
+               do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub
        done
 
        scrub_check_data2 sanity-scrub.sh 9
@@ -539,6 +574,11 @@ test_4c() {
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
+
+               echo "OI scrub on MDS$n status for the 2nd time:"
+               do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub
+
                [ ${updated0[$n]} -lt ${updated1[$n]} ] ||
                        error "(12) Auto trigger full scrub unexpectedly"
        done
@@ -555,6 +595,11 @@ test_4c() {
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
+
+               echo "OI scrub on MDS$n status for the 3rd time:"
+               do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub
+
                [ ${updated0[$n]} -gt ${updated1[$n]} ] ||
                        error "(16) Auto trigger full scrub unexpectedly"
        done
@@ -567,8 +612,13 @@ test_4c() {
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
                               awk '/^prior_updated/ { print $2 }')
-               [ ${updated0[$n]} -eq ${updated1[$n]} ] ||
+               [ ${updated0[$n]} -eq ${updated1[$n]} ] || {
+                       echo "OI scrub on MDS$n status for the 4th time:"
+                       do_facet mds$n $LCTL get_param -n \
+                               osd-ldiskfs.$(facet_svc mds$n).oi_scrub
+
                        error "(18) NOT auto trigger full scrub as expected"
+               }
        done
 }
 run_test 4c "Auto trigger OI scrub if bad OI mapping was found (3)"
@@ -624,20 +674,20 @@ test_5() {
        mount_client $MOUNT || error "(16) Fail to start client!"
 
        full_scrub_ratio 0
-       #define OBD_FAIL_OSD_SCRUB_DELAY         0x190
        do_nodes $(comma_list $(mdts_nodes)) \
-               $LCTL set_param fail_val=3 fail_loc=0x190
+               $LCTL set_param fail_loc=0 fail_val=0
 
        local n
+       declare -a pids
+
        for n in $(seq $MDSCOUNT); do
-               stat $DIR/$tdir/mds$n/${tfile}800 ||
-                       error "(17) Failed to stat mds$n/${tfile}800"
+               stat $DIR/$tdir/mds$n/${tfile}800 &
+               pids[$n]=$!
        done
 
-       scrub_check_status 18 scanning
-
-       do_nodes $(comma_list $(mdts_nodes)) \
-               $LCTL set_param fail_loc=0 fail_val=0
+       for n in $(seq $MDSCOUNT); do
+               wait ${pids[$n]} || error "(18) Fail to stat mds$n/${tfile}800"
+       done
 
        scrub_check_status 19 completed
        scrub_check_flags 20 ""