diff mbox series

[4/8] generic/038: kill background threads on interrupt

Message ID 20220602003126.2903779-5-david@fromorbit.com (mailing list archive)
State New, archived
Headers show
Series [1/8] xfstests: Add Log Attribute Replay test | expand

Commit Message

Dave Chinner June 2, 2022, 12:31 a.m. UTC
From: Dave Chinner <dchinner@redhat.com>

When I ctrl-c g/038, it either does nothing or it leaves processes
running in the background. It is not cleaning up it's background
processes correctly, so add kill vectors into the cleanup. Make sure
we only kill in the cleanup trap if the background processes are
running.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
---
 tests/generic/038 | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

Comments

Darrick J. Wong June 2, 2022, 12:51 a.m. UTC | #1
On Thu, Jun 02, 2022 at 10:31:22AM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> When I ctrl-c g/038, it either does nothing or it leaves processes
> running in the background. It is not cleaning up it's background
> processes correctly, so add kill vectors into the cleanup. Make sure
> we only kill in the cleanup trap if the background processes are
> running.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> Reviewed-by: Amir Goldstein <amir73il@gmail.com>

Looks ok,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  tests/generic/038 | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/generic/038 b/tests/generic/038
> index c6cea94e..e9b49967 100755
> --- a/tests/generic/038
> +++ b/tests/generic/038
> @@ -36,6 +36,10 @@ _begin_fstest auto stress trim
>  # Override the default cleanup function.
>  _cleanup()
>  {
> +	[ -n "${create_pids}" ] && kill ${create_pids[@]}
> +	[ -n "${fallocate_pids}" ] && kill ${fallocate_pids[@]}
> +	[ -n "${trim_pids}" ] && kill ${trim_pids[@]}
> +	wait
>  	rm -fr $tmp
>  }
>  
> @@ -47,6 +51,8 @@ _supported_fs generic
>  _require_scratch
>  _require_xfs_io_command "falloc"
>  
> +echo "Silence is golden"
> +
>  # Keep allocating and deallocating 1G of data space with the goal of creating
>  # and deleting 1 block group constantly. The intention is to race with the
>  # fstrim loop below.
> @@ -113,7 +119,7 @@ create_files()
>  	done
>  
>  	wait ${create_pids[@]}
> -
> +	unset create_pids
>  }
>  
>  _scratch_mkfs >>$seqres.full 2>&1
> @@ -136,12 +142,8 @@ create_files "foobar"
>  kill ${fallocate_pids[@]}
>  kill ${trim_pids[@]}
>  wait
> +unset fallocate_pids
> +unset trim_pids
>  
> -# The fstests framework will now check for fs consistency with fsck.
> -# The trimming was racy and caused some btree nodes to get full of zeroes on
> -# disk, which obviously caused fs metadata corruption. The race often lead
> -# to missing free space entries in a block group's free space cache too.
> -
> -echo "Silence is golden"
>  status=0
>  exit
> -- 
> 2.35.1
>
diff mbox series

Patch

diff --git a/tests/generic/038 b/tests/generic/038
index c6cea94e..e9b49967 100755
--- a/tests/generic/038
+++ b/tests/generic/038
@@ -36,6 +36,10 @@  _begin_fstest auto stress trim
 # Override the default cleanup function.
 _cleanup()
 {
+	[ -n "${create_pids}" ] && kill ${create_pids[@]}
+	[ -n "${fallocate_pids}" ] && kill ${fallocate_pids[@]}
+	[ -n "${trim_pids}" ] && kill ${trim_pids[@]}
+	wait
 	rm -fr $tmp
 }
 
@@ -47,6 +51,8 @@  _supported_fs generic
 _require_scratch
 _require_xfs_io_command "falloc"
 
+echo "Silence is golden"
+
 # Keep allocating and deallocating 1G of data space with the goal of creating
 # and deleting 1 block group constantly. The intention is to race with the
 # fstrim loop below.
@@ -113,7 +119,7 @@  create_files()
 	done
 
 	wait ${create_pids[@]}
-
+	unset create_pids
 }
 
 _scratch_mkfs >>$seqres.full 2>&1
@@ -136,12 +142,8 @@  create_files "foobar"
 kill ${fallocate_pids[@]}
 kill ${trim_pids[@]}
 wait
+unset fallocate_pids
+unset trim_pids
 
-# The fstests framework will now check for fs consistency with fsck.
-# The trimming was racy and caused some btree nodes to get full of zeroes on
-# disk, which obviously caused fs metadata corruption. The race often lead
-# to missing free space entries in a block group's free space cache too.
-
-echo "Silence is golden"
 status=0
 exit