New submission from Carl Drougge <bugs.python....@s.z42.net>:

If several threads try to start a multiprocessing.Pool at the same time when no 
pool has been started before this often fails with an exception like this (the 
exact import varies):

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/tmp/py3.9.0rc1/lib/python3.9/threading.py", line 950, in 
_bootstrap_inner
    self.run()
  File "/tmp/py3.9.0rc1/lib/python3.9/threading.py", line 888, in run
    self._target(*self._args, **self._kwargs)
  File "/tmp/py3.9.0rc1/lib/python3.9/multiprocessing/context.py", line 118, in 
Pool
    from .pool import Pool
ImportError: cannot import name 'Pool' from partially initialized module 
'multiprocessing.pool' (most likely due to a circular import) 
(/tmp/py3.9.0rc1/lib/python3.9/multiprocessing/pool.py)

This happens even if Pool was imported before starting the threads and is new 
in 3.9. It's easy to work around by starting a pool in the main thread before 
starting the other threads.

I have attached a minimal example that triggers it. Tested on Debian stable and 
FreeBSD 11.3.

----------
components: Library (Lib)
files: pool_error_on_3.9.py
messages: 375542
nosy: drougge
priority: normal
severity: normal
status: open
title: multiprocessing.Pool from concurrent threads failure on 3.9.0rc1
type: behavior
versions: Python 3.9
Added file: https://bugs.python.org/file49401/pool_error_on_3.9.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue41567>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to