Whamcloud - gitweb
LU-7782 scrub: handle slave obj of striped directory
[fs/lustre-release.git] / lustre / tests / sanity-scrub.sh
index 14440d9..a137f87 100644 (file)
@@ -8,6 +8,7 @@ set -e
 
 ONLY=${ONLY:-"$*"}
 ALWAYS_EXCEPT="$SANITY_SCRUB_EXCEPT"
+
 [ "$SLOW" = "no" ] && EXCEPT_SLOW=""
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
@@ -19,6 +20,22 @@ init_logging
 
 require_dsh_mds || exit 0
 
+load_modules
+
+if ! check_versions; then
+       skip "It is NOT necessary to test scrub under interoperation mode"
+       exit 0
+fi
+
+[ $(facet_fstype $SINGLEMDS) != "ldiskfs" ] &&
+       skip "test OI scrub only for ldiskfs" && exit 0
+
+[ $(facet_fstype ost1) != "ldiskfs" ] &&
+       skip "test OI scrub only for ldiskfs" && exit 0
+
+[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.2.90) ]] &&
+       skip "Need MDS version at least 2.2.90" && exit 0
+
 SAVED_MDSSIZE=${MDSSIZE}
 SAVED_OSTSIZE=${OSTSIZE}
 SAVED_OSTCOUNT=${OSTCOUNT}
@@ -28,6 +45,7 @@ SAVED_OSTCOUNT=${OSTCOUNT}
 MDSSIZE=200000
 OSTSIZE=100000
 # no need too much OSTs, to reduce the format/start/stop overhead
+stopall
 [ $OSTCOUNT -gt 4 ] && OSTCOUNT=4
 
 MOUNT_2=""
@@ -36,16 +54,6 @@ MOUNT_2=""
 formatall
 setupall
 
-[ $(facet_fstype $SINGLEMDS) != "ldiskfs" ] &&
-       skip "test OI scrub only for ldiskfs" && check_and_cleanup_lustre &&
-       exit 0
-[ $(facet_fstype ost1) != "ldiskfs" ] &&
-       skip "test OI scrub only for ldiskfs" && check_and_cleanup_lustre &&
-       exit 0
-[[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.2.90) ]] &&
-       skip "Need MDS version at least 2.2.90" && check_and_cleanup_lustre &&
-       exit 0
-
 [[ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.3.90) ]] &&
        ALWAYS_EXCEPT="$ALWAYS_EXCEPT 1a"
 
@@ -120,13 +128,8 @@ scrub_prep() {
        echo "preparing... $(date)"
        for n in $(seq $MDSCOUNT); do
                echo "creating $nfiles files on mds$n"
-               if [ $n -eq 1 ]; then
-                       mkdir $DIR/$tdir/mds$n ||
-                               error "Failed to create directory mds$n"
-               else
-                       $LFS mkdir -i $((n - 1)) $DIR/$tdir/mds$n ||
-                               error "Failed to create remote directory mds$n"
-               fi
+               test_mkdir -i $((n - 1)) $DIR/$tdir/mds$n ||
+                       error "Failed to create directory mds$n"
                cp $LUSTRE/tests/*.sh $DIR/$tdir/mds$n ||
                        error "Failed to copy files to mds$n"
                mkdir -p $DIR/$tdir/mds$n/d_$tfile ||
@@ -279,17 +282,13 @@ scrub_backup_restore() {
 
        for n in $(seq $MDSCOUNT); do
                mds_backup_restore mds$n $igif ||
-                       error "(error_id) Backup/restore on mds$n failed"
+                       error "($error_id) Backup/restore on mds$n failed"
        done
 }
 
 scrub_enable_auto() {
-       local n
-
-       for n in $(seq $MDSCOUNT); do
-               do_facet mds$n $LCTL set_param -n \
-                       osd-ldiskfs.$(facet_svc mds$n).auto_scrub 1
-       done
+       do_nodes $(comma_list $(mdts_nodes)) $LCTL set_param -n \
+               osd-ldiskfs.*.auto_scrub=1
 }
 
 full_scrub_ratio() {
@@ -297,22 +296,19 @@ full_scrub_ratio() {
                return
 
        local ratio=$1
-       local n
 
-       for n in $(seq $MDSCOUNT); do
-               do_facet mds$n $LCTL set_param -n \
-                       osd-ldiskfs.$(facet_svc mds$n).full_scrub_ratio $ratio
-       done
+       do_nodes $(comma_list $(mdts_nodes)) $LCTL set_param -n \
+               osd-ldiskfs.*.full_scrub_ratio=$ratio
 }
 
-full_scrub_speed() {
-       local speed=$1
-       local n
+full_scrub_threshold_rate() {
+       [[ $(lustre_version_code $SINGLEMDS) -le $(version_code 2.6.50) ]] &&
+               return
 
-       for n in $(seq $MDSCOUNT); do
-               do_facet mds$n $LCTL set_param -n \
-                       osd-ldiskfs.$(facet_svc mds$n).full_scrub_speed $speed
-       done
+       local rate=$1
+
+       do_nodes $(comma_list $(mdts_nodes)) $LCTL set_param -n \
+               osd-ldiskfs.*.full_scrub_threshold_rate=$rate
 }
 
 test_0() {
@@ -329,8 +325,7 @@ run_test 0 "Do not auto trigger OI scrub for non-backup/restore case"
 test_1a() {
        scrub_prep 0
        echo "start $SINGLEMDS without disabling OI scrub"
-       start $SINGLEMDS $MDT_DEVNAME $MOUNT_OPTS_SCRUB > /dev/null ||
-               error "(1) Fail to start MDS!"
+       scrub_start_mds 1 "$MOUNT_OPTS_SCRUB"
 
        local FLAGS=$($SHOW_SCRUB | awk '/^flags/ { print $2 }')
        [ -z "$FLAGS" ] || error "(3) Expect empty flags, but got '$FLAGS'"
@@ -408,7 +403,7 @@ test_3() {
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
        scrub_check_status 3 init
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
 }
 #run_test 3 "Do not trigger OI scrub when MDT mounts if 'noscrub' specified"
 
@@ -417,7 +412,7 @@ test_4a() {
        scrub_backup_restore 1
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
        mount_client $MOUNT || error "(5) Fail to start client!"
        scrub_enable_auto
        full_scrub_ratio 0
@@ -430,7 +425,7 @@ test_4a() {
        local -a updated0
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              awk '/^prior_updated/ { print $2 }')
        done
 
        scrub_check_data2 sanity-scrub.sh 9
@@ -439,7 +434,7 @@ test_4a() {
        local -a updated1
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              awk '/^prior_updated/ { print $2 }')
                [ ${updated0[$n]} -eq ${updated1[$n]} ] ||
                        error "(10) NOT auto trigger full scrub as expected"
        done
@@ -451,11 +446,11 @@ test_4b() {
        scrub_backup_restore 1
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
        mount_client $MOUNT || error "(5) Fail to start client!"
        scrub_enable_auto
        full_scrub_ratio 10
-       full_scrub_speed 10000
+       full_scrub_threshold_rate 10000
        scrub_check_data 6
        sleep 3
 
@@ -465,7 +460,11 @@ test_4b() {
        local -a updated0
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              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
@@ -477,7 +476,12 @@ test_4b() {
        local -a updated1
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              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
@@ -493,7 +497,12 @@ test_4b() {
 
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              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
@@ -505,9 +514,14 @@ test_4b() {
 
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
-               [ ${updated0[$n]} -eq ${updated1[$n]} ] ||
+                              awk '/^prior_updated/ { print $2 }')
+               [ ${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)"
@@ -517,11 +531,11 @@ test_4c() {
        scrub_backup_restore 1
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
        mount_client $MOUNT || error "(5) Fail to start client!"
        scrub_enable_auto
        full_scrub_ratio 2
-       full_scrub_speed 20
+       full_scrub_threshold_rate 20
        scrub_check_data 6
        sleep 3
 
@@ -531,7 +545,11 @@ test_4c() {
        local -a updated0
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              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
@@ -543,7 +561,12 @@ test_4c() {
        local -a updated1
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              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
@@ -559,7 +582,12 @@ test_4c() {
 
        for n in $(seq $MDSCOUNT); do
                updated0[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
+                              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
@@ -571,9 +599,14 @@ test_4c() {
 
        for n in $(seq $MDSCOUNT); do
                updated1[$n]=$(scrub_status $n |
-                              awk '/^sf_items_updated_prior/ { print $2 }')
-               [ ${updated0[$n]} -eq ${updated1[$n]} ] ||
+                              awk '/^prior_updated/ { print $2 }')
+               [ ${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)"
@@ -584,18 +617,18 @@ test_5() {
 
        scrub_prep 1000
        scrub_backup_restore 1
-       echo "starting MDTs with OI scrub disabled"
+       echo "starting MDTs with OI scrub disabled (1)"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
        scrub_check_status 3 init
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
        mount_client $MOUNT || error "(5) Fail to start client!"
        scrub_enable_auto
+       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
 
-       full_scrub_ratio 0
        scrub_check_data 6
        umount_client $MOUNT || error "(7) Fail to stop client!"
        scrub_check_status 8 scanning
@@ -609,7 +642,7 @@ test_5() {
        do_nodes $(comma_list $(mdts_nodes)) \
                $LCTL set_param fail_loc=0 fail_val=0
 
-       echo "starting MDTs with OI scrub disabled"
+       echo "starting MDTs with OI scrub disabled (2)"
        scrub_start_mds 10 "$MOUNT_OPTS_NOSCRUB"
        scrub_check_status 11 crashed
        scrub_stop_mds 12
@@ -654,15 +687,15 @@ test_6() {
        scrub_backup_restore 1
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
        mount_client $MOUNT || error "(5) Fail to start client!"
        scrub_enable_auto
+       full_scrub_ratio 0
 
        #define OBD_FAIL_OSD_SCRUB_DELAY         0x190
        do_nodes $(comma_list $(mdts_nodes)) \
                $LCTL set_param fail_val=2 fail_loc=0x190
 
-       full_scrub_ratio 0
        scrub_check_data 6
 
        # Sleep 5 sec to guarantee at least one object processed by OI scrub
@@ -732,15 +765,15 @@ test_7() {
        scrub_backup_restore 1
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
        mount_client $MOUNT || error "(5) Fail to start client!"
        scrub_enable_auto
+       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
 
-       full_scrub_ratio 0
        scrub_check_data 6
 
        local n
@@ -750,7 +783,7 @@ test_7() {
        done
 
        scrub_check_status 8 scanning
-       scrub_check_flags 9 inconsistent,auto
+       scrub_check_flags 9 recreated,inconsistent,auto
 
        do_nodes $(comma_list $(mdts_nodes)) \
                $LCTL set_param fail_loc=0 fail_val=0
@@ -765,7 +798,7 @@ test_8() {
        scrub_backup_restore 1
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
 
        #define OBD_FAIL_OSD_SCRUB_DELAY         0x190
        do_nodes $(comma_list $(mdts_nodes)) \
@@ -797,7 +830,7 @@ test_9() {
 
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
 
        local BASE_SPEED1=100
        local RUN_TIME1=10
@@ -869,22 +902,22 @@ run_test 9 "OI scrub speed control"
 test_10a() {
        scrub_prep 0
        scrub_backup_restore 1
-       echo "starting mds$n with OI scrub disabled"
+       echo "starting mds$n with OI scrub disabled (1)"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
        mount_client $MOUNT || error "(5) Fail to start client!"
        scrub_enable_auto
+       full_scrub_ratio 0
 
        #define OBD_FAIL_OSD_SCRUB_DELAY         0x190
        do_nodes $(comma_list $(mdts_nodes)) \
                $LCTL set_param fail_val=1 fail_loc=0x190
 
-       full_scrub_ratio 0
        scrub_check_data 6
        scrub_check_status 7 scanning
        umount_client $MOUNT || error "(8) Fail to stop client!"
        scrub_stop_mds 9
-       echo "starting MDTs with OI scrub disabled"
+       echo "starting MDTs with OI scrub disabled (2)"
        scrub_start_mds 10 "$MOUNT_OPTS_NOSCRUB"
        scrub_check_status 11 paused
        scrub_stop_mds 12
@@ -906,7 +939,7 @@ test_10b() {
        scrub_backup_restore 1
        echo "starting MDTs with OI scrub disabled"
        scrub_start_mds 2 "$MOUNT_OPTS_NOSCRUB"
-       scrub_check_flags 4 inconsistent
+       scrub_check_flags 4 recreated,inconsistent
 
        #define OBD_FAIL_OSD_SCRUB_DELAY         0x190
        do_nodes $(comma_list $(mdts_nodes)) \
@@ -938,7 +971,7 @@ test_11() {
        check_mount_and_prep
 
        for n in $(seq $MDSCOUNT); do
-               $LFS mkdir -i $((n - 1)) $DIR/$tdir/mds$n ||
+               test_mkdir -i $((n - 1)) $DIR/$tdir/mds$n ||
                        error "(1) Fail to mkdir $DIR/$tdir/mds$n"
 
                createmany -o $DIR/$tdir/mds$n/f $CREATED ||
@@ -954,14 +987,13 @@ test_11() {
 
        # OI scrub should skip the new created objects for the first accessing
        # notice we're creating a new llog for every OST on every startup
-       # new features can make this even less stable, so we only check
-       # that the number of skipped files is less than 2x the number of files
-       local MAXIMUM=$((CREATED * 2))
+       # new features can make this even less stable, so we only check that
+       # the number of skipped files is more than the number or known created
        local MINIMUM=$((CREATED + 1)) # files + directory
        for n in $(seq $MDSCOUNT); do
                local SKIPPED=$(scrub_status $n | awk '/^noscrub/ { print $2 }')
-               [ $SKIPPED -ge $MAXIMUM -o $SKIPPED -lt $MINIMUM ] &&
-                       error "(5) Expect [ $MINIMUM , $MAXIMUM ) objects" \
+               [ $SKIPPED -lt $MINIMUM ] &&
+                       error "(5) Expect at least $MINIMUM objects" \
                                "skipped on mds$n, but got $SKIPPED"
 
                checked0[$n]=$(scrub_status $n | awk '/^checked/ { print $2 }')
@@ -987,12 +1019,11 @@ test_12() {
        check_mount_and_prep
        $SETSTRIPE -c 1 -i 0 $DIR/$tdir
 
-       local count=$(precreated_ost_obj_count 0 0)
-
        #define OBD_FAIL_OSD_COMPAT_INVALID_ENTRY               0x195
        do_facet ost1 $LCTL set_param fail_loc=0x195
-       createmany -o $DIR/$tdir/f $((count + 32))
+       local count=$(precreated_ost_obj_count 0 0)
 
+       createmany -o $DIR/$tdir/f $((count + 32))
        umount_client $MOUNT || error "(1) Fail to stop client!"
 
        stop ost1 || error "(2) Fail to stop ost1"
@@ -1026,10 +1057,10 @@ test_13() {
        check_mount_and_prep
        $SETSTRIPE -c 1 -i 0 $DIR/$tdir
 
-       local count=$(precreated_ost_obj_count 0 0)
-
        #define OBD_FAIL_OSD_COMPAT_NO_ENTRY            0x196
        do_facet ost1 $LCTL set_param fail_loc=0x196
+       local count=$(precreated_ost_obj_count 0 0)
+
        createmany -o $DIR/$tdir/f $((count + 32))
        do_facet ost1 $LCTL set_param fail_loc=0
 
@@ -1059,10 +1090,10 @@ test_14() {
        check_mount_and_prep
        $SETSTRIPE -c 1 -i 0 $DIR/$tdir
 
-       local count=$(precreated_ost_obj_count 0 0)
-
        #define OBD_FAIL_OSD_COMPAT_NO_ENTRY            0x196
        do_facet ost1 $LCTL set_param fail_loc=0x196
+       local count=$(precreated_ost_obj_count 0 0)
+
        createmany -o $DIR/$tdir/f $((count + 32))
        do_facet ost1 $LCTL set_param fail_loc=0
 
@@ -1080,7 +1111,7 @@ test_14() {
        mount_client $MOUNT || error "(5) Fail to start client!"
 
        local LF_REPAIRED=$($SHOW_SCRUB_ON_OST |
-                           awk '/^lf_reparied/ { print $2 }')
+                           awk '/^lf_repa[ri]*ed/ { print $2 }')
        [ $LF_REPAIRED -gt 0 ] ||
                error "(6) Some entry under /lost+found should be repaired"
 
@@ -1089,15 +1120,13 @@ 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
        local server_version=$(lustre_version_code $SINGLEMDS)
        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
+       scrub_check_flags 4 recreated,inconsistent
 
        # run under dryrun mode
        if [ $server_version -lt $(version_code 2.5.58) ]; then
@@ -1106,7 +1135,7 @@ test_15() {
                scrub_start 5 --dryrun
        fi
        scrub_check_status 6 completed
-       scrub_check_flags 7 inconsistent
+       scrub_check_flags 7 recreated,inconsistent
        scrub_check_params 8 dryrun
        scrub_check_repaired 9 20
 
@@ -1117,7 +1146,7 @@ test_15() {
                scrub_start 10 --dryrun
        fi
        scrub_check_status 11 completed
-       scrub_check_flags 12 inconsistent
+       scrub_check_flags 12 recreated,inconsistent
        scrub_check_params 13 dryrun
        scrub_check_repaired 14 20