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
>
>
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox