All of lore.kernel.org
 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 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.