[Python-checkins] bpo-39205: Tests that highlight a hang on ProcessPoolExecutor shutdown (#18221)
Brian Quinlan
webhook-mailer at python.org
Mon Jan 27 19:50:41 EST 2020
https://github.com/python/cpython/commit/884eb89d4a5cc8e023deaa65001dfa74a436694c
commit: 884eb89d4a5cc8e023deaa65001dfa74a436694c
branch: master
author: Brian Quinlan <brian at sweetapp.com>
committer: GitHub <noreply at github.com>
date: 2020-01-27T16:50:37-08:00
summary:
bpo-39205: Tests that highlight a hang on ProcessPoolExecutor shutdown (#18221)
files:
M Lib/test/test_concurrent_futures.py
diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py
index c97351636e869..c8fa35e9eeafa 100644
--- a/Lib/test/test_concurrent_futures.py
+++ b/Lib/test/test_concurrent_futures.py
@@ -342,6 +342,26 @@ def test_hang_issue12364(self):
for f in fs:
f.result()
+ def test_hang_issue39205(self):
+ """shutdown(wait=False) doesn't hang at exit with running futures.
+
+ See https://bugs.python.org/issue39205.
+ """
+ if self.executor_type == futures.ProcessPoolExecutor:
+ raise unittest.SkipTest(
+ "Hangs due to https://bugs.python.org/issue39205")
+
+ rc, out, err = assert_python_ok('-c', """if True:
+ from concurrent.futures import {executor_type}
+ from test.test_concurrent_futures import sleep_and_print
+ if __name__ == "__main__":
+ t = {executor_type}(max_workers=3)
+ t.submit(sleep_and_print, 1.0, "apple")
+ t.shutdown(wait=False)
+ """.format(executor_type=self.executor_type.__name__))
+ self.assertFalse(err)
+ self.assertEqual(out.strip(), b"apple")
+
class ThreadPoolShutdownTest(ThreadPoolMixin, ExecutorShutdownTest, BaseTestCase):
def _prime_executor(self):
More information about the Python-checkins
mailing list