Issue12071
This issue tracker has been migrated to GitHub,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2011-05-13 14:14 by vstinner, last changed 2022-04-11 14:57 by admin. This issue is now closed.
Files | ||||
---|---|---|---|---|
File name | Uploaded | Description | Edit | |
test_thread_oom.c | neologix, 2011-05-14 07:22 |
Messages (6) | |||
---|---|---|---|
msg135911 - (view) | Author: STINNER Victor (vstinner) * | Date: 2011-05-13 14:14 | |
test_concurrent_futures of Python 3.3 (rev [6d8678555c04]) hangs on OpenIndiana. I dumped manually the tracebacks of the parent process (test_concurrent_futures) and of the 3 child processes. In the parent process, the test hangs when exiting the context manager: --------------------------------------------- def test_context_manager_shutdown(self): with futures.ProcessPoolExecutor(max_workers=5) as e: processes = e._processes self.assertEqual(list(e.map(abs, range(-5, 5))), [5, 4, 3, 2, 1, 0, 1, 2, 3, 4]) ####### HERE ######### for p in processes: p.join() --------------------------------------------- I may be related to issue #9205. Have fun with the following tracebacks! [123/354] test_concurrent_futures === Parent === Thread 0x000004af: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x000004ae: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x000004a0: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000049f: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000049e: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000049d: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000479: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000478: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000477: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000476: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000475: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000474: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000473: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000472: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000471: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000470: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000046f: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000046e: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000046d: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000046c: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000044d: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000044c: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000044b: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x0000044a: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000449: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000448: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000447: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000446: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000445: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000444: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Current thread 0x00000001: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/threading.py", line 851 in join File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 352 in shutdown self._queue_management_thread.join() File "/home/haypo/cpython/Lib/concurrent/futures/_base.py", line 570 in __exit__ File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 164 in test_context_manager_shutdown File "/home/haypo/cpython/Lib/unittest/case.py", line 407 in _executeTestPart File "/home/haypo/cpython/Lib/unittest/case.py", line 462 in run File "/home/haypo/cpython/Lib/unittest/case.py", line 514 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/test/support.py", line 1099 in run File "/home/haypo/cpython/Lib/test/support.py", line 1187 in _run_suite File "/home/haypo/cpython/Lib/test/support.py", line 1213 in run_unittest File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 618 in test_main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1044 in runtest_inner File "/home/haypo/cpython/Lib/test/regrtest.py", line 838 in runtest File "/home/haypo/cpython/Lib/test/regrtest.py", line 662 in main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1625 in <module> File "/home/haypo/cpython/Lib/runpy.py", line 73 in _run_code File "/home/haypo/cpython/Lib/runpy.py", line 160 in _run_module_as_main === Child #1 ========= Thread 0x00000445: Thread 0x00000444: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/threading.py", line 423 in wait File "/home/haypo/cpython/Lib/threading.py", line 685 in start File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 187 in _start_thread File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 107 in put File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 168 in _add_call_item_to_queue File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 206 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Current thread 0x00000001: File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 115 in get self._rlock.acquire() File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 122 in _process_worker File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 118 in run File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 263 in _bootstrap File "/home/haypo/cpython/Lib/multiprocessing/forking.py", line 126 in __init__ File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 134 in start File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 323 in _adjust_process_count File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 341 in submit File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 77 in <listcomp> File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 77 in _prime_executor File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 64 in setUp File "/home/haypo/cpython/Lib/unittest/case.py", line 407 in _executeTestPart File "/home/haypo/cpython/Lib/unittest/case.py", line 460 in run File "/home/haypo/cpython/Lib/unittest/case.py", line 514 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/test/support.py", line 1099 in run File "/home/haypo/cpython/Lib/test/support.py", line 1187 in _run_suite File "/home/haypo/cpython/Lib/test/support.py", line 1213 in run_unittest File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 618 in test_main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1044 in runtest_inner File "/home/haypo/cpython/Lib/test/regrtest.py", line 838 in runtest File "/home/haypo/cpython/Lib/test/regrtest.py", line 662 in main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1625 in <module> File "/home/haypo/cpython/Lib/runpy.py", line 73 in _run_code File "/home/haypo/cpython/Lib/runpy.py", line 160 in _run_module_as_main === Child #2 ========= Thread 0x00000445: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000444: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Current thread 0x00000001: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 117 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 122 in _process_worker File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 118 in run File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 263 in _bootstrap File "/home/haypo/cpython/Lib/multiprocessing/forking.py", line 126 in __init__ File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 134 in start File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 323 in _adjust_process_count File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 341 in submit File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 77 in <listcomp> File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 77 in _prime_executor File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 64 in setUp File "/home/haypo/cpython/Lib/unittest/case.py", line 407 in _executeTestPart File "/home/haypo/cpython/Lib/unittest/case.py", line 460 in run File "/home/haypo/cpython/Lib/unittest/case.py", line 514 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/test/support.py", line 1099 in run File "/home/haypo/cpython/Lib/test/support.py", line 1187 in _run_suite File "/home/haypo/cpython/Lib/test/support.py", line 1213 in run_unittest File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 618 in test_main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1044 in runtest_inner File "/home/haypo/cpython/Lib/test/regrtest.py", line 838 in runtest File "/home/haypo/cpython/Lib/test/regrtest.py", line 662 in main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1625 in <module> File "/home/haypo/cpython/Lib/runpy.py", line 73 in _run_code File "/home/haypo/cpython/Lib/runpy.py", line 160 in _run_module_as_main === Child #3 ========= Thread 0x00000445: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 252 in _feed File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Thread 0x00000444: File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 364 in _recv chunk = read(self._handle, remaining) File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 385 in _recv_bytes File "/home/haypo/cpython/Lib/multiprocessing/connection.py", line 260 in recv File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 378 in get File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 208 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap Current thread 0x00000001: File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 115 in get self._rlock.acquire() File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 122 in _process_worker File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 118 in run File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 263 in _bootstrap File "/home/haypo/cpython/Lib/multiprocessing/forking.py", line 126 in __init__ File "/home/haypo/cpython/Lib/multiprocessing/process.py", line 134 in start File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 323 in _adjust_process_count File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 341 in submit File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 77 in <listcomp> File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 77 in _prime_executor File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 64 in setUp File "/home/haypo/cpython/Lib/unittest/case.py", line 407 in _executeTestPart File "/home/haypo/cpython/Lib/unittest/case.py", line 460 in run File "/home/haypo/cpython/Lib/unittest/case.py", line 514 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/unittest/suite.py", line 105 in run File "/home/haypo/cpython/Lib/unittest/suite.py", line 67 in __call__ File "/home/haypo/cpython/Lib/test/support.py", line 1099 in run File "/home/haypo/cpython/Lib/test/support.py", line 1187 in _run_suite File "/home/haypo/cpython/Lib/test/support.py", line 1213 in run_unittest File "/home/haypo/cpython/Lib/test/test_concurrent_futures.py", line 618 in test_main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1044 in runtest_inner File "/home/haypo/cpython/Lib/test/regrtest.py", line 838 in runtest File "/home/haypo/cpython/Lib/test/regrtest.py", line 662 in main File "/home/haypo/cpython/Lib/test/regrtest.py", line 1625 in <module> File "/home/haypo/cpython/Lib/runpy.py", line 73 in _run_code File "/home/haypo/cpython/Lib/runpy.py", line 160 in _run_module_as_main |
|||
msg135933 - (view) | Author: Charles-François Natali (neologix) * | Date: 2011-05-13 17:23 | |
Interesting. There's something weird with the first child: === Child #1 ========= Thread 0x00000445: Thread 0x00000444: File "/home/haypo/cpython/Lib/threading.py", line 237 in wait waiter.acquire() File "/home/haypo/cpython/Lib/threading.py", line 423 in wait File "/home/haypo/cpython/Lib/threading.py", line 685 in start File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 187 in _start_thread File "/home/haypo/cpython/Lib/multiprocessing/queues.py", line 107 in put File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 168 in _add_call_item_to_queue File "/home/haypo/cpython/Lib/concurrent/futures/process.py", line 206 in _queue_management_worker File "/home/haypo/cpython/Lib/threading.py", line 690 in run File "/home/haypo/cpython/Lib/threading.py", line 737 in _bootstrap_inner File "/home/haypo/cpython/Lib/threading.py", line 710 in _bootstrap See the last thread created (0x00000445)? 0x00000444 bootstrapped 0x00000445, and is waiting for it to signal that it's running. Since there's no backtrace for this thread, it means that it's stuck inside t_bootstrap or really early in the call stack (or didn't start at all?). You don't have a coredump, do you? I guess it's not reproductible either? |
|||
msg135946 - (view) | Author: STINNER Victor (vstinner) * | Date: 2011-05-13 22:42 | |
Oh, I have "no more memory" errors on this VM especially on fork. test_concurrent_futures.test_context_manager_shutdown() failure should be related to a memory allocation error. I tried my faulthandler using SIGUSR1 to get more information, but send the send does kill the process instead of printing the traceback when test_concurrent_futures hangs, whereas it works as expected (dump tracebacks) a few tests before... |
|||
msg135962 - (view) | Author: Charles-François Natali (neologix) * | Date: 2011-05-14 07:22 | |
This makes sense. I was suspecting a system limit exhaustion, maybe OOM or maximum number of threads, something like that. But at least on Linux, in OOM condition, the process would either get nuked by the OOM-killer, or pthread_create would bail out with ENOMEM (when allocating the stack for example), so we would be able to - somewhat - catch the error and get an exception (well, OOM condition is also often a sort of "undefined behaviour", so we can't really make a guarantee on the state of the interpreter when it's hit). Out of curioisity, could you try the attached test to see how it behaves on your VM? Usage: ./test_thread_oom <number of threads to create> On Linux it fails with ENOMEM "Resource temporarily unavailable". |
|||
msg136871 - (view) | Author: Charles-François Natali (neologix) * | Date: 2011-05-25 16:51 | |
Since it's a OOM issue, can we close? |
|||
msg136907 - (view) | Author: STINNER Victor (vstinner) * | Date: 2011-05-25 21:49 | |
> Since it's a OOM issue, can we close? Yes, I don't want to investigate, and I already changed the size of my swap partition, so I cannot reproduce the bug anymore. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:57:17 | admin | set | github: 56280 |
2011-05-25 21:49:49 | vstinner | set | status: open -> closed resolution: wont fix messages: + msg136907 |
2011-05-25 16:51:01 | neologix | set | messages: + msg136871 |
2011-05-14 07:22:07 | neologix | set | files:
+ test_thread_oom.c messages: + msg135962 |
2011-05-13 22:42:14 | vstinner | set | messages: + msg135946 |
2011-05-13 17:23:47 | neologix | set | nosy:
+ neologix messages: + msg135933 |
2011-05-13 15:47:12 | jcea | set | nosy:
+ jcea |
2011-05-13 14:18:53 | vstinner | set | title: test_concurrent_futures hangs on OpenIndiana -> test_concurrent_futures.test_context_manager_shutdown() hangs on OpenIndiana |
2011-05-13 14:14:54 | vstinner | create |