All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Zorro Lang <zlang@kernel.org>
Cc: fstests@vger.kernel.org, Dave Chinner <david@fromorbit.com>
Subject: Re: [PATCH 2/2] fstests: remove run_setsid test way from check
Date: Fri, 21 Mar 2025 08:36:55 -0700	[thread overview]
Message-ID: <20250321153655.GD4001511@frogsfrogsfrogs> (raw)
In-Reply-To: <20250320192812.782380-3-zlang@kernel.org>

On Fri, Mar 21, 2025 at 03:28:12AM +0800, Zorro Lang wrote:
> This patch partially revert most of the 88d60f434 ("common: fix pkill
> by running test program in a separate session"), it does:
> 1. Remove run_setsid script
> 2. Remove all run_setsid related things from check
> 3. Keep the change in _scratch_xfs_stress_scrub_cleanup() which is a
>    bug fix for xfs_scrub test.
> 
> Signed-off-by: Zorro Lang <zlang@kernel.org>

This looks like a reasonable revert to me and it doesn't seem to break
anything so
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>

--D

> ---
>  check            | 39 ++++++---------------------------------
>  common/rc        |  4 ++--
>  tools/Makefile   |  1 -
>  tools/run_setsid | 22 ----------------------
>  4 files changed, 8 insertions(+), 58 deletions(-)
>  delete mode 100755 tools/run_setsid
> 
> diff --git a/check b/check
> index ba853ae85..32890470a 100755
> --- a/check
> +++ b/check
> @@ -698,46 +698,19 @@ _adjust_oom_score -500
>  # systemd doesn't automatically remove transient scopes that fail to terminate
>  # when systemd tells them to terminate (e.g. programs stuck in D state when
>  # systemd sends SIGKILL), so we use reset-failed to tear down the scope.
> -#
> -# Use setsid to run the test program with a separate session id so that we
> -# can pkill only the processes started by this test.
>  _run_seq() {
> +	local cmd=(bash -c "test -w ${OOM_SCORE_ADJ} && echo 250 > ${OOM_SCORE_ADJ}; exec ./$seq")
>  	local res
> -	unset CHILDPID
> -	unset FSTESTS_ISOL	# set by tools/run_seq_*
>  
>  	if [ -n "${HAVE_SYSTEMD_SCOPES}" ]; then
>  		local unit="$(systemd-escape "fs$seq").scope"
>  		systemctl reset-failed "${unit}" &> /dev/null
> -		systemd-run --quiet --unit "${unit}" --scope \
> -			./tools/run_setsid "./$seq" &
> -		CHILDPID=$!
> -		wait
> +		systemd-run --quiet --unit "${unit}" --scope "${cmd[@]}"
>  		res=$?
> -		unset CHILDPID
>  		systemctl stop "${unit}" &> /dev/null
> +		return "${res}"
>  	else
> -		# bash won't run the SIGINT trap handler while there are
> -		# foreground children in a separate session, so we must run
> -		# the test in the background and wait for it.
> -		./tools/run_setsid "./$seq" &
> -		CHILDPID=$!
> -		wait
> -		res=$?
> -		unset CHILDPID
> -	fi
> -
> -	return $res
> -}
> -
> -_kill_seq() {
> -	if [ -n "$CHILDPID" ]; then
> -		# SIGPIPE will kill all the children (including fsstress)
> -		# without bash logging fatal signal termination messages to the
> -		# console
> -		pkill -PIPE --session "$CHILDPID"
> -		wait
> -		unset CHILDPID
> +		"${cmd[@]}"
>  	fi
>  }
>  
> @@ -746,9 +719,9 @@ _prepare_test_list
>  fstests_start_time="$(date +"%F %T")"
>  
>  if $OPTIONS_HAVE_SECTIONS; then
> -	trap "_kill_seq; _summary; exit \$status" 0 1 2 3 15
> +	trap "_summary; exit \$status" 0 1 2 3 15
>  else
> -	trap "_kill_seq; _wrapup; exit \$status" 0 1 2 3 15
> +	trap "_wrapup; exit \$status" 0 1 2 3 15
>  fi
>  
>  function run_section()
> diff --git a/common/rc b/common/rc
> index 55c384a63..fa0f02ac4 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -33,7 +33,7 @@ _test_sync()
>  # Kill only the processes started by this test.
>  _pkill()
>  {
> -	pkill --session 0 "$@"
> +	pkill "$@"
>  }
>  
>  # Find only the test processes started by this test
> @@ -2792,7 +2792,7 @@ _require_user_exists()
>  # not, passing $SHELL in this manner works both for "su" and "su -c cmd".
>  _su()
>  {
> -	su --session-command $SHELL "$@"
> +	su "$@"
>  }
>  
>  # check if a user exists and is able to execute commands.
> diff --git a/tools/Makefile b/tools/Makefile
> index 2d502884f..af7adc2a6 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -7,7 +7,6 @@ include $(TOPDIR)/include/builddefs
>  
>  TOOLS_DIR = tools
>  helpers=\
> -	run_setsid \
>  	run_privatens
>  
>  include $(BUILDRULES)
> diff --git a/tools/run_setsid b/tools/run_setsid
> deleted file mode 100755
> index 5938f80e6..000000000
> --- a/tools/run_setsid
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -#!/bin/bash
> -
> -# SPDX-License-Identifier: GPL-2.0
> -# Copyright (c) 2025 Oracle.  All Rights Reserved.
> -#
> -# Try starting things in a new process session so that test processes have
> -# something with which to filter only their own subprocesses.
> -
> -if [ -n "${FSTESTS_ISOL}" ]; then
> -	# Allow the test to become a target of the oom killer
> -	oom_knob="/proc/self/oom_score_adj"
> -	test -w "${oom_knob}" && echo 250 > "${oom_knob}"
> -
> -	exec "$@"
> -fi
> -
> -if [ -z "$1" ] || [ "$1" = "--help" ]; then
> -	echo "Usage: $0 command [args...]"
> -	exit 1
> -fi
> -
> -FSTESTS_ISOL=setsid exec setsid "$0" "$@"
> -- 
> 2.47.1
> 
> 

  reply	other threads:[~2025-03-21 15:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-20 19:28 [PATCH 0/2] revert "setsid" and "privatens" test ways from check Zorro Lang
2025-03-20 19:28 ` [PATCH 1/2] fstests: remove privatens test way " Zorro Lang
2025-03-21 15:35   ` Darrick J. Wong
2025-03-20 19:28 ` [PATCH 2/2] fstests: remove run_setsid " Zorro Lang
2025-03-21 15:36   ` Darrick J. Wong [this message]
2025-03-21  7:26 ` [PATCH 0/2] revert "setsid" and "privatens" test ways " Christoph Hellwig
2025-03-24 21:44 ` Dave Chinner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250321153655.GD4001511@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=david@fromorbit.com \
    --cc=fstests@vger.kernel.org \
    --cc=zlang@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.