From 09d86a113f0a46639f3cffe98e4e9c22c085f08f Mon Sep 17 00:00:00 2001 From: Filipe Manana Date: Thu, 28 Nov 2024 12:14:56 +0000 Subject: [PATCH] btrfs/028: kill lingering processes when test is interrupted If we interrupt the test after it spawned the fsstress and balance processes (while it's sleeping for 30 seconds * $TIME_FACTOR), we don't kill them and they stay around for a long time, making it impossible to unmount the scratch filesystem (failing with -EBUSY). Fix this by adding a _cleanup function that kills the processes and waits for them to exit. Signed-off-by: Filipe Manana Reviewed-by: David Sterba Reviewed-by: Zorro Lang Signed-off-by: Zorro Lang --- tests/btrfs/028 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/btrfs/028 b/tests/btrfs/028 index f64fc831..05366e5a 100755 --- a/tests/btrfs/028 +++ b/tests/btrfs/028 @@ -13,6 +13,19 @@ . ./common/preamble _begin_fstest auto qgroup balance +_cleanup() +{ + cd / + rm -r -f $tmp.* + if [ ! -z "$balance_pid" ]; then + _btrfs_kill_stress_balance_pid $balance_pid + fi + if [ ! -z "$fsstress_pid" ]; then + kill $fsstress_pid &> /dev/null + wait $fsstress_pid &> /dev/null + fi +} + . ./common/filter _require_scratch @@ -44,6 +57,7 @@ sleep $((30*$TIME_FACTOR)) kill $fsstress_pid &> /dev/null wait $fsstress_pid &> /dev/null _btrfs_kill_stress_balance_pid $balance_pid +unset fsstress_pid balance_pid # The qgroups accounting will be checked by 'btrfs check' (fsck) after the # fstests framework unmounts the filesystem. -- 2.39.5