Message ID | 173870406291.546134.15020436171673463354.stgit@frogsfrogsfrogs (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [01/34] generic/476: fix fsstress process management | expand |
On Tue, Feb 04, 2025 at 01:25:26PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > The next patch in this series fixes various issues with the recently > added fstests process isolation scheme by running each new process in a > separate process group session. Unfortunately, the processes in the > session are created with SIGINT ignored by default because they are not > attached to the controlling terminal. Therefore, switch the kill signal > to SIGPIPE because that is usually fatal and not masked by default. > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > --- > common/fuzzy | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) Change looks fine, but _pkill is not yet defined. It is introduced in the next patch "common/rc: hoist pkill to a helper function" so this needs to be reordered. With that done, however: Reviewed-by: Dave Chinner <dchinner@redhat.com>
On Wed, Feb 05, 2025 at 11:16:16AM +1100, Dave Chinner wrote: > On Tue, Feb 04, 2025 at 01:25:26PM -0800, Darrick J. Wong wrote: > > From: Darrick J. Wong <djwong@kernel.org> > > > > The next patch in this series fixes various issues with the recently > > added fstests process isolation scheme by running each new process in a > > separate process group session. Unfortunately, the processes in the > > session are created with SIGINT ignored by default because they are not > > attached to the controlling terminal. Therefore, switch the kill signal > > to SIGPIPE because that is usually fatal and not masked by default. > > > > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > > --- > > common/fuzzy | 13 ++++++------- > > 1 file changed, 6 insertions(+), 7 deletions(-) > > Change looks fine, but _pkill is not yet defined. It is introduced > in the next patch "common/rc: hoist pkill to a helper function" > so this needs to be reordered. Fixed. > With that done, however: > > Reviewed-by: Dave Chinner <dchinner@redhat.com> Thanks for spotting that, and for the review! --D > -- > Dave Chinner > david@fromorbit.com >
diff --git a/common/fuzzy b/common/fuzzy index 0a2d91542b561e..6d390d4efbd3da 100644 --- a/common/fuzzy +++ b/common/fuzzy @@ -891,7 +891,7 @@ __stress_xfs_scrub_loop() { local runningfile="$2" local scrub_startat="$3" shift; shift; shift - local sigint_ret="$(( $(kill -l SIGINT) + 128 ))" + local signal_ret="$(( $(kill -l SIGPIPE) + 128 ))" local scrublog="$tmp.scrub" while __stress_scrub_running "$scrub_startat" "$runningfile"; do @@ -902,7 +902,7 @@ __stress_xfs_scrub_loop() { _scratch_scrub "$@" &> $scrublog res=$? if [ "$res" -eq "$sigint_ret" ]; then - # Ignore SIGINT because the cleanup function sends + # Ignore SIGPIPE because the cleanup function sends # that to terminate xfs_scrub res=0 fi @@ -1173,13 +1173,11 @@ _scratch_xfs_stress_scrub_cleanup() { rm -f "$runningfile" echo "Cleaning up scrub stress run at $(date)" >> $seqres.full - # Send SIGINT so that bash won't print a 'Terminated' message that - # distorts the golden output. echo "Killing stressor processes at $(date)" >> $seqres.full _kill_fsstress - pkill -INT --parent $$ xfs_io >> $seqres.full 2>&1 - pkill -INT --parent $$ fsx >> $seqres.full 2>&1 - pkill -INT --parent $$ xfs_scrub >> $seqres.full 2>&1 + _pkill --echo -PIPE xfs_io >> $seqres.full 2>&1 + _pkill --echo -PIPE fsx >> $seqres.full 2>&1 + _pkill --echo -PIPE xfs_scrub >> $seqres.full 2>&1 # Tests are not allowed to exit with the scratch fs frozen. If we # started a fs freeze/thaw background loop, wait for that loop to exit @@ -1209,6 +1207,7 @@ _scratch_xfs_stress_scrub_cleanup() { # Wait for the remaining children to exit. echo "Waiting for children to exit at $(date)" >> $seqres.full wait + echo "Children exited as of $(date)" >> $seqres.full # Ensure the scratch fs is also writable before we exit. if [ -n "$__SCRUB_STRESS_REMOUNT_LOOP" ]; then