]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: drv-net: add a warning for bkg + shell + terminate
authorJakub Kicinski <kuba@kernel.org>
Wed, 19 Feb 2025 23:49:50 +0000 (15:49 -0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 21 Feb 2025 01:57:29 +0000 (17:57 -0800)
Joe Damato reports that some shells will fork before running
the command when python does "sh -c $cmd", while bash on my
machine does an exec of $cmd directly.

This will have implications for our ability to terminate
the child process on various configurations of bash and
other shells. Warn about using

bkg(... shell=True, termininate=True)

most background commands can hopefully exit cleanly (exit_wait).

Link: https://lore.kernel.org/Z7Yld21sv_Ip3gQx@LQ3V64L9R2
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Acked-by: Joe Damato <jdamato@fastly.com>
Tested-by: Joe Damato <jdamato@fastly.com>
Link: https://patch.msgid.link/20250219234956.520599-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/lib/py/utils.py

index 9e3bcddcf3e832a8844b51dd996a39b550d34ba3..33b153767d89649f1e61dad38ea025462420db4f 100644 (file)
@@ -61,6 +61,10 @@ class bkg(cmd):
         self.terminate = not exit_wait
         self.check_fail = fail
 
+        if shell and self.terminate:
+            print("# Warning: combining shell and terminate is risky!")
+            print("#          SIGTERM may not reach the child on zsh/ksh!")
+
     def __enter__(self):
         return self