public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH] Allow graceful subtest cleanup in shell tests
@ 2022-11-10 13:54 Martin Doucha
  2022-11-11 14:02 ` Petr Vorel
  2022-11-14 11:56 ` Richard Palethorpe
  0 siblings, 2 replies; 3+ messages in thread
From: Martin Doucha @ 2022-11-10 13:54 UTC (permalink / raw)
  To: ltp

The new shell test timeout code sends SIGTERM to any subprocesses when
the main script hits timeout. SIGTERM isn't handled by the LTP library
which means that tools like netstress will be instantly killed without
performing any cleanup. Handle SIGTERM like SIGINT in LTP library
to allow graceful cleanup.

Signed-off-by: Martin Doucha <mdoucha@suse.cz>
---

Note: The current lack of graceful cleanup causes random failures in shell
tests which run the same tool many times (e.g. netstress). When the PID
counter wraps around and the tool accidentally gets the same PID as another
process that got killed by SIGTERM, the new test process will fail during IPC
setup.

 lib/tst_test.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/tst_test.c b/lib/tst_test.c
index b225ba082..1732fd058 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -1568,6 +1568,7 @@ static int fork_testrun(void)
 	int status;
 
 	SAFE_SIGNAL(SIGINT, sigint_handler);
+	SAFE_SIGNAL(SIGTERM, sigint_handler);
 
 	alarm(results->timeout);
 
@@ -1579,6 +1580,7 @@ static int fork_testrun(void)
 		tst_disable_oom_protection(0);
 		SAFE_SIGNAL(SIGALRM, SIG_DFL);
 		SAFE_SIGNAL(SIGUSR1, SIG_DFL);
+		SAFE_SIGNAL(SIGTERM, SIG_DFL);
 		SAFE_SIGNAL(SIGINT, SIG_DFL);
 		SAFE_SETPGID(0, 0);
 		testrun();
@@ -1586,6 +1588,7 @@ static int fork_testrun(void)
 
 	SAFE_WAITPID(test_pid, &status, 0);
 	alarm(0);
+	SAFE_SIGNAL(SIGTERM, SIG_DFL);
 	SAFE_SIGNAL(SIGINT, SIG_DFL);
 
 	if (tst_test->taint_check && tst_taint_check()) {
-- 
2.37.3


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-11-14 12:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-10 13:54 [LTP] [PATCH] Allow graceful subtest cleanup in shell tests Martin Doucha
2022-11-11 14:02 ` Petr Vorel
2022-11-14 11:56 ` Richard Palethorpe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox