New submission from Genaro Camele <genarocam...@hotmail.com>:
I've a piece of code that submits a task to a [ThreadPoolExecutor][1] which starts a [Process][2]. I've realised that in Python 3.8 that Process finished with exit code `0`. But I've updated Python to the 3.9 version and this started to finishing with exit code `1`! Even when the Process executes an empty task. Here's a minimal example: ```python from multiprocessing import Process from concurrent.futures import ThreadPoolExecutor def some_task(): pass def execute_error(): p = Process(target=some_task) p.start() p.join() print(p.exitcode) # This is always 1 on a ThreadPoolExecutor!!! executor = ThreadPoolExecutor(max_workers=4) executor.submit(execute_error) # execute_error() # IMPORTANT: this works correctly (exit 0) ``` My versions: ``` Ubuntu 21.04 Python 3.9.4 ``` **Note** that if `__execute_error` is called outside the ThreadPoolExecutor it works correctly. Running on Python 3.8.6 exitcode = 0 too. [1]: https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor [2]: https://docs.python.org/3.9/library/multiprocessing.html#multiprocessing.Process ---------- messages: 391985 nosy: Genarito priority: normal severity: normal status: open title: Processes in Python 3.9 exiting with code 1 when It's created inside a ThreadPoolExecutor type: behavior versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue43944> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com