FS/XFS testing framework
 help / color / mirror / Atom feed
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


  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