From cb49e7701fd17d17d4b797134a1f6b7131f6fc32 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Tue, 22 Apr 2025 21:02:31 -0400 Subject: [PATCH] ZTS: Polish online_offline tests - Kill workload first for faster cleanup. - Use `zpool wait` for resilver instead of `sleep`. - Remove irrelevant workload from `online_offline_003_neg`. Reviewed-by: George Melikov Reviewed-by: Tony Hutter Signed-off-by: Alexander Motin Sponsored by: iXsystems, Inc. Closes: #17259 --- .../functional/online_offline/online_offline_001_pos.ksh | 8 ++++---- .../functional/online_offline/online_offline_002_neg.ksh | 4 +++- .../functional/online_offline/online_offline_003_neg.ksh | 9 +-------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/tests/zfs-tests/tests/functional/online_offline/online_offline_001_pos.ksh b/tests/zfs-tests/tests/functional/online_offline/online_offline_001_pos.ksh index 6ed1b3769..c7b7ca789 100755 --- a/tests/zfs-tests/tests/functional/online_offline/online_offline_001_pos.ksh +++ b/tests/zfs-tests/tests/functional/online_offline/online_offline_001_pos.ksh @@ -50,16 +50,17 @@ DISKLIST=$(get_disklist $TESTPOOL) function cleanup { + kill $killpid >/dev/null 2>&1 + # # Ensure we don't leave disks in the offline state # for disk in $DISKLIST; do log_must zpool online $TESTPOOL $disk log_must check_state $TESTPOOL $disk "online" - done + log_must zpool wait -t resilver $TESTPOOL - kill $killpid >/dev/null 2>&1 [[ -e $TESTDIR ]] && log_must rm -rf $TESTDIR/* } @@ -77,8 +78,7 @@ for disk in $DISKLIST; do log_must zpool online $TESTPOOL $disk log_must check_state $TESTPOOL $disk "online" - # Delay for resilver to complete - sleep 3 + log_must zpool wait -t resilver $TESTPOOL done log_must kill $killpid diff --git a/tests/zfs-tests/tests/functional/online_offline/online_offline_002_neg.ksh b/tests/zfs-tests/tests/functional/online_offline/online_offline_002_neg.ksh index 5fe0e0407..5da90b4d6 100755 --- a/tests/zfs-tests/tests/functional/online_offline/online_offline_002_neg.ksh +++ b/tests/zfs-tests/tests/functional/online_offline/online_offline_002_neg.ksh @@ -51,6 +51,8 @@ DISKLIST=$(get_disklist $TESTPOOL) function cleanup { + kill $killpid >/dev/null 2>&1 + # # Ensure we don't leave disks in the offline state # @@ -58,8 +60,8 @@ function cleanup log_must zpool online $TESTPOOL $disk log_must check_state $TESTPOOL $disk "online" done + log_must zpool wait -t resilver $TESTPOOL - kill $killpid >/dev/null 2>&1 [[ -e $TESTDIR ]] && log_must rm -rf $TESTDIR/* } diff --git a/tests/zfs-tests/tests/functional/online_offline/online_offline_003_neg.ksh b/tests/zfs-tests/tests/functional/online_offline/online_offline_003_neg.ksh index 168483053..99737823e 100755 --- a/tests/zfs-tests/tests/functional/online_offline/online_offline_003_neg.ksh +++ b/tests/zfs-tests/tests/functional/online_offline/online_offline_003_neg.ksh @@ -49,7 +49,6 @@ function cleanup destroy_pool $TESTPOOL1 fi - kill $killpid >/dev/null 2>&1 [[ -e $TESTDIR ]] && log_must rm -rf $TESTDIR/* } @@ -59,7 +58,7 @@ log_onexit cleanup specials_list="" for i in 0 1 2; do - mkfile $MINVDEVSIZE $TESTDIR/$TESTFILE1.$i + log_must mkfile $MINVDEVSIZE $TESTDIR/$TESTFILE1.$i specials_list="$specials_list $TESTDIR/$TESTFILE1.$i" done disk=($specials_list) @@ -68,15 +67,9 @@ create_pool $TESTPOOL1 $specials_list log_must zfs create $TESTPOOL1/$TESTFS1 log_must zfs set mountpoint=$TESTDIR1 $TESTPOOL1/$TESTFS1 -file_trunc -f $((64 * 1024 * 1024)) -b 8192 -c 0 -r $TESTDIR/$TESTFILE1 & -typeset killpid="$! " - for i in 0 1 2; do log_mustnot zpool offline $TESTPOOL1 ${disk[$i]} check_state $TESTPOOL1 ${disk[$i]} "online" done -log_must kill $killpid -sync_all_pools - log_pass