From: Zorro Lang <zlang@kernel.org>
To: fstests@vger.kernel.org
Cc: "Darrick J . Wong" <djwong@kernel.org>,
Dave Chinner <david@fromorbit.com>
Subject: [PATCH 1/2] fstests: remove privatens test way from check
Date: Fri, 21 Mar 2025 03:28:11 +0800 [thread overview]
Message-ID: <20250320192812.782380-2-zlang@kernel.org> (raw)
In-Reply-To: <20250320192812.782380-1-zlang@kernel.org>
This patch totally revert:
ce7f796ad check: remove the deprecation of sessionid
336784e3d check: disable HAVE_PRIVATENS by default
949bdf8ea check: deprecate using process sessions to isolate test instances
and partially revert:
247ab01fa check: run tests in a private pid/mount namespace
So it does:
1. Remove "run_privatens" related things from xfstests/check, due to
check doesn't need that test way.
2. Keep run_privatens script and related changes for check-parallel.
Signed-off-by: Zorro Lang <zlang@kernel.org>
---
check | 37 +++++++++++--------------------------
common/rc | 12 ++----------
2 files changed, 13 insertions(+), 36 deletions(-)
diff --git a/check b/check
index 33eb3e085..ba853ae85 100755
--- a/check
+++ b/check
@@ -674,14 +674,6 @@ _stash_test_status() {
esac
}
-# Don't try "privatens" by default, it's experimental for now.
-if [ "$TRY_PRIVATENS" = "yes" ];then
- # Can we run in a private pid/mount namespace?
- HAVE_PRIVATENS=
- ./tools/run_privatens bash -c "exit 77"
- test $? -eq 77 && HAVE_PRIVATENS=yes
-fi
-
# Can we run systemd scopes?
HAVE_SYSTEMD_SCOPES=
systemctl reset-failed "fstests-check" &>/dev/null
@@ -699,29 +691,22 @@ _adjust_oom_score -500
# the system runs out of memory it'll be the test that gets killed and not the
# test framework. The test is run in a separate process without any of our
# functions, so we open-code adjusting the OOM score.
+#
+# If systemd is available, run the entire test script in a scope so that we can
+# kill all subprocesses of the test if it fails to clean up after itself. This
+# is essential for ensuring that the post-test unmount succeeds. Note that
+# 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 res
unset CHILDPID
unset FSTESTS_ISOL # set by tools/run_seq_*
- if [ -n "${HAVE_PRIVATENS}" ]; then
- # If pid and mount namespaces are available, run the whole test
- # inside them so that the test cannot access any process or
- # /tmp contents that it does not itself create. The ./$seq
- # process is considered the "init" process of the pid
- # namespace, so all subprocesses will be sent SIGKILL when it
- # terminates.
- ./tools/run_privatens "./$seq"
- res=$?
- elif [ -n "${HAVE_SYSTEMD_SCOPES}" ]; then
- # If systemd is available, run the entire test script in a
- # scope so that we can kill all subprocesses of the test if it
- # fails to clean up after itself. This is essential for
- # ensuring that the post-test unmount succeeds. Note that
- # 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.
+ 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 \
diff --git a/common/rc b/common/rc
index e51686389..55c384a63 100644
--- a/common/rc
+++ b/common/rc
@@ -33,11 +33,7 @@ _test_sync()
# Kill only the processes started by this test.
_pkill()
{
- if [ "$FSTESTS_ISOL" = "setsid" ]; then
- pkill --session 0 "$@"
- else
- pkill "$@"
- fi
+ pkill --session 0 "$@"
}
# Find only the test processes started by this test
@@ -2796,11 +2792,7 @@ _require_user_exists()
# not, passing $SHELL in this manner works both for "su" and "su -c cmd".
_su()
{
- if [ "$FSTESTS_ISOL" = "setsid" ]; then
- su --session-command $SHELL "$@"
- else
- su "$@"
- fi
+ su --session-command $SHELL "$@"
}
# check if a user exists and is able to execute commands.
--
2.47.1
next prev parent reply other threads:[~2025-03-20 19:28 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 ` Zorro Lang [this message]
2025-03-21 15:35 ` [PATCH 1/2] fstests: remove privatens test way " 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
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=20250320192812.782380-2-zlang@kernel.org \
--to=zlang@kernel.org \
--cc=david@fromorbit.com \
--cc=djwong@kernel.org \
--cc=fstests@vger.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