]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-88118: Fix some test_multiprocessing flakiness. (#116434)
authorGregory P. Smith <greg@krypto.org>
Wed, 6 Mar 2024 21:39:06 +0000 (13:39 -0800)
committerGitHub <noreply@github.com>
Wed, 6 Mar 2024 21:39:06 +0000 (13:39 -0800)
Fix some test_multiprocessing flakiness.

Potentially introduced by https://github.com/python/cpython/pull/25845

not joining that thread likely leads to recently observed "environment
changed" logically passing but overall failing tests seen on some
buildbots similar to:

```
1 test altered the execution environment (env changed):
    test.test_multiprocessing_fork.test_processes

2 re-run tests:
    test.test_multiprocessing_fork.test_processes
    test.test_multiprocessing_forkserver.test_processes
```

Lib/test/_test_multiprocessing.py

index 058537bab5af260e95a0505f6c221eb7f40e621d..b63b567bbcad08edc38f837db3366844ce84227f 100644 (file)
@@ -3513,15 +3513,20 @@ class _TestListener(BaseTestCase):
             client = self.connection.Client(addr, authkey=authkey)
             client.send(1729)
 
-        key = b""
+        key = b''
 
         with self.connection.Listener(authkey=key) as listener:
-            threading.Thread(target=run, args=(listener.address, key)).start()
-            with listener.accept() as d:
-                self.assertEqual(d.recv(), 1729)
+            thread = threading.Thread(target=run, args=(listener.address, key))
+            thread.start()
+            try:
+                with listener.accept() as d:
+                    self.assertEqual(d.recv(), 1729)
+            finally:
+                thread.join()
 
         if self.TYPE == 'processes':
-            self.assertRaises(OSError, listener.accept)
+            with self.assertRaises(OSError):
+                listener.accept()
 
     @unittest.skipUnless(util.abstract_sockets_supported,
                          "test needs abstract socket support")