New submission from Romain Sébille: Hi,
I stumble on this today and can't find any reasons or previous issue as to why this happen so I thought of submitting the issue here. I attached a script (run_in_executor.py) to reproduce the problem, the original problem arise when waiting to read on a socket but I have the same result with time.sleep(). The output: $ python3.6 run_in_executor.py Start Going to sleep ^CClosing loop Traceback (most recent call last): File "run_in_executor.py", line 15, in <module> loop.run_until_complete(sleep_in_executor(loop)) File "/usr/local/lib/python3.6/asyncio/base_events.py", line 454, in run_until_complete self.run_forever() File "/usr/local/lib/python3.6/asyncio/base_events.py", line 421, in run_forever self._run_once() File "/usr/local/lib/python3.6/asyncio/base_events.py", line 1389, in _run_once event_list = self._selector.select(timeout) File "/usr/local/lib/python3.6/selectors.py", line 445, in select fd_event_list = self._epoll.poll(timeout, max_ev) KeyboardInterrupt ^CError in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 39, in _python_exit t.join() File "/usr/local/lib/python3.6/threading.py", line 1056, in join self._wait_for_tstate_lock() File "/usr/local/lib/python3.6/threading.py", line 1072, in _wait_for_tstate_lock elif lock.acquire(block, timeout): KeyboardInterrupt Current behavior: We have to send two ^C before we go back to the shell. Expected behavior: Only one ^C to go back to the shell. Python versions tested: - Python 3.4.2 - Python 3.4.6 - Python 3.5.3 - Python 3.6.0 >From what I have gathered the error is within the ThreadPoolExecutor cleaning >function but I don't see why there are still living workers, the >Executor.shutdown() take care of that. Unfortunately I don't really know what to look, is a AsyncIO bug ? A ThreadPoolExecutor bug ? Or something else. ---------- components: asyncio files: run_in_executor.py messages: 285732 nosy: gvanrossum, rsebille, yselivanov priority: normal severity: normal status: open title: Interpreter hang when interrupting a loop.run_in_executor() future type: behavior versions: Python 3.4, Python 3.5, Python 3.6 Added file: http://bugs.python.org/file46328/run_in_executor.py _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29309> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com