Whamcloud - gitweb
LU-4149 tests: disable sanity_scrub(7, 15) for dne test.
[fs/lustre-release.git] / lustre / tests / sanity-scrub.sh
index 4db0e25..e2017a1 100644 (file)
@@ -178,6 +178,46 @@ scrub_check_flags() {
        done
 }
 
+scrub_check_params() {
+       local error_id=$1
+       local expected=$2
+       local actual
+       local n
+
+       for n in $(seq $MDSCOUNT); do
+               actual=$(do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub |
+                       awk '/^param/ { print $2 }')
+               if [ "$actual" != "$expected" ]; then
+                       error "($error_id) Expected '$expected' on mds$n, but" \
+                              "got '$actual'"
+               fi
+       done
+}
+
+scrub_check_repaired() {
+       local error_id=$1
+       local expected=$2
+       local actual
+       local n
+
+       for n in $(seq $MDSCOUNT); do
+               actual=$(do_facet mds$n $LCTL get_param -n \
+                       osd-ldiskfs.$(facet_svc mds$n).oi_scrub |
+                       awk '/^updated/ { print $2 }')
+
+               if [ $expected -eq 0 -a $actual -ne 0 ]; then
+                       error "($error_id) Expected no repaired on mds$n, but" \
+                              "got '$actual'"
+               fi
+
+               if [ $expected -ne 0 -a $actual -lt $expected ]; then
+                       error "($error_id) Expected '$expected' on mds$n, but" \
+                              "got '$actual'"
+               fi
+       done
+}
+
 scrub_check_data() {
        local error_id=$1
        local n
@@ -515,6 +555,9 @@ test_6() {
 run_test 6 "OI scrub resumes from last checkpoint"
 
 test_7() {
+       # skip test_7 for LU-4149
+       [ $MDSCOUNT -ge 2 ] && skip "skip now for >= 2 MDTs" && return
+
        scrub_prep 500
        scrub_backup_restore 1
 
@@ -958,6 +1001,50 @@ test_14() {
 }
 run_test 14 "OI scrub can repair objects under lost+found"
 
+test_15() {
+       # skip test_15 for LU-4182
+       [ $MDSCOUNT -ge 2 ] && skip "skip now for >= 2 MDTs" && return
+       scrub_prep 20
+       scrub_backup_restore 1
+       echo "starting MDTs with OI scrub disabled"
+       scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
+       scrub_check_status 3 init
+       scrub_check_flags 4 inconsistent
+
+       # run under dryrun mode
+       scrub_start 5 -n on
+       sleep 3
+       scrub_check_status 6 completed
+       scrub_check_flags 7 inconsistent
+       scrub_check_params 8 dryrun
+       scrub_check_repaired 9 20
+
+       # run under dryrun mode again
+       scrub_start 10 -n on
+       sleep 3
+       scrub_check_status 11 completed
+       scrub_check_flags 12 inconsistent
+       scrub_check_params 13 dryrun
+       scrub_check_repaired 14 20
+
+       # run under normal mode
+       scrub_start 15 -n off
+       sleep 3
+       scrub_check_status 16 completed
+       scrub_check_flags 17 ""
+       scrub_check_params 18 ""
+       scrub_check_repaired 19 20
+
+       # run under normal mode again
+       scrub_start 20 -n off
+       sleep 3
+       scrub_check_status 21 completed
+       scrub_check_flags 22 ""
+       scrub_check_params 23 ""
+       scrub_check_repaired 24 0
+}
+run_test 15 "Dryrun mode OI scrub"
+
 # restore MDS/OST size
 MDSSIZE=${SAVED_MDSSIZE}
 OSTSIZE=${SAVED_OSTSIZE}