From b6ae309d15d05d3074a39680313820c18200405a Mon Sep 17 00:00:00 2001 From: devdavidejesus Date: Thu, 22 Oct 2026 15:30:34 -0300 Subject: [PATCH] gh-160295: Fix race in test_forkserver_sigkill After a SIGKILL, the forkserver can no longer report the first child's exit status, so proc.join() returns with exit code 255 while the child may still be running. Wait for the event instead of checking it right after join(). --- Lib/test/_test_multiprocessing.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 40abeda816963b8..e078c7a6732b534 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -994,7 +994,9 @@ def check_forkserver_death(self, signum): self.assertEqual(proc2.exitcode, 0) proc.join() - self.assertTrue(evt.is_set()) + # After SIGKILL, join() can return (exitcode 255) as soon as the + # status pipe is closed, before the orphaned child has run. + self.assertTrue(evt.wait(support.SHORT_TIMEOUT)) self.assertIn(proc.exitcode, (0, 255)) def test_forkserver_sigint(self):