ZTS: fix wait_scrubbed()

Currently, wait_scrubbed() is the only function of its kind that
accepts a timeout, which is 10s by default. This timeout is pretty
short for a scrub and causes test failures if we run too long. This
patch removes the timeout, instead leaning on the global test suite
timeout to ensure the tests keep moving.

Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #8210
This commit is contained in:
Tom Caputi 2018-12-14 13:06:49 -05:00 committed by Brian Behlendorf
parent 2a6078450d
commit 7c46894081
2 changed files with 5 additions and 10 deletions

View File

@ -1029,7 +1029,7 @@ function get_endslice #<disk> <slice>
((endcyl = (endcyl + 1) / ratio)) ((endcyl = (endcyl + 1) / ratio))
fi fi
echo $endcyl echo $endcyl
} }
@ -3209,15 +3209,10 @@ function wait_replacing #pool
function wait_scrubbed function wait_scrubbed
{ {
typeset pool=${1:-$TESTPOOL} typeset pool=${1:-$TESTPOOL}
typeset iter=${2:-10} while true ; do
typeset -i i=0 is_pool_scrubbed $pool && break
for i in {1..$iter} ; do log_must sleep 1
if is_pool_scrubbed $pool ; then
return 0
fi
sleep 1
done done
return 1
} }
# Backup the zed.rc in our test directory so that we can edit it for our test. # Backup the zed.rc in our test directory so that we can edit it for our test.

View File

@ -60,5 +60,5 @@ log_must zpool replace $TESTPOOL $DISK1 $DISK3
# Wait for the resilver to finish, and then the subsequent scrub to finish. # Wait for the resilver to finish, and then the subsequent scrub to finish.
# Waiting for the scrub has the effect of waiting for both. Timeout after 10 # Waiting for the scrub has the effect of waiting for both. Timeout after 10
# seconds if nothing is happening. # seconds if nothing is happening.
log_must wait_scrubbed $TESTPOOL 10 log_must wait_scrubbed $TESTPOOL
log_pass "Successfully ran the scrub after resilver zedlet" log_pass "Successfully ran the scrub after resilver zedlet"