From 7c46894081300410612a34f7c05377848b277dab Mon Sep 17 00:00:00 2001 From: Tom Caputi Date: Fri, 14 Dec 2018 13:06:49 -0500 Subject: [PATCH] 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 Reviewed-by: Brian Behlendorf Signed-off-by: Tom Caputi Closes #8210 --- tests/zfs-tests/include/libtest.shlib | 13 ++++--------- .../tests/functional/fault/scrub_after_resilver.ksh | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/tests/zfs-tests/include/libtest.shlib b/tests/zfs-tests/include/libtest.shlib index 2effa42074..482ab5ef51 100644 --- a/tests/zfs-tests/include/libtest.shlib +++ b/tests/zfs-tests/include/libtest.shlib @@ -1029,7 +1029,7 @@ function get_endslice # ((endcyl = (endcyl + 1) / ratio)) fi - + echo $endcyl } @@ -3209,15 +3209,10 @@ function wait_replacing #pool function wait_scrubbed { typeset pool=${1:-$TESTPOOL} - typeset iter=${2:-10} - typeset -i i=0 - for i in {1..$iter} ; do - if is_pool_scrubbed $pool ; then - return 0 - fi - sleep 1 + while true ; do + is_pool_scrubbed $pool && break + log_must sleep 1 done - return 1 } # Backup the zed.rc in our test directory so that we can edit it for our test. diff --git a/tests/zfs-tests/tests/functional/fault/scrub_after_resilver.ksh b/tests/zfs-tests/tests/functional/fault/scrub_after_resilver.ksh index 3b124bdd59..a5b58ec8ff 100755 --- a/tests/zfs-tests/tests/functional/fault/scrub_after_resilver.ksh +++ b/tests/zfs-tests/tests/functional/fault/scrub_after_resilver.ksh @@ -60,5 +60,5 @@ log_must zpool replace $TESTPOOL $DISK1 $DISK3 # 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 # 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"