Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Closed
Description
Bug report
Bug description:
multiprocessing.Pool withspawn method breaks logging.handlers.QueueHandler configuration
importloggingimportlogging.configimportmultiprocessingimporttimedef_init(q):logging.config.dictConfig({'version':1,'disable_existing_loggers':True,'handlers': {'log_to_parent': {'class':'logging.handlers.QueueHandler','queue':q}},'root': {'handlers': ['log_to_parent'],'level':'DEBUG'} })logging.getLogger().info('log from child')if__name__=='__main__':multiprocessing.set_start_method('spawn')withmultiprocessing.Manager()asmanager:# q = manager.Queue()q=multiprocessing.Queue()# listen for log messages from child processes# ...withmultiprocessing.Pool(processes=1,maxtasksperchild=1,initializer=_init,initargs=(q,))aspool:time.sleep(1)
got exception (when q = manager.Queue() or q = multiprocessing.Queue())
Process SpawnPoolWorker-2:Traceback (most recent call last): File "/home/foo/miniconda3/envs/py312forge/lib/python3.12/logging/config.py", line 581, in configure handler = self.configure_handler(handlers[name]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/foo/miniconda3/envs/py312forge/lib/python3.12/logging/config.py", line 792, in configure_handler proxy_queue = MM().Queue() ^^^^ File "/home/foo/miniconda3/envs/py312forge/lib/python3.12/multiprocessing/context.py", line 57, in Manager m.start() File "/home/foo/miniconda3/envs/py312forge/lib/python3.12/multiprocessing/managers.py", line 562, in start self._process.start() File "/home/foo/miniconda3/envs/py312forge/lib/python3.12/multiprocessing/process.py", line 118, in start assert not _current_process._config.get('daemon'), \ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^AssertionError: daemonic processes are not allowed to have childrenThe above exception was the direct cause of the following exception:...CPython versions tested on:
3.12
Operating systems tested on:
Linux
Linked PRs
- gh-121723: Relax constraints on queue objects for
logging.handlers.QueueHandler. #122154 - [3.13] gh-121723: Relax constraints on queue objects for
logging.handlers.QueueHandler. (GH-122154) #122603 - [3.12] gh-121723: Relax constraints on queue objects for
logging.handlers.QueueHandler. (GH-122154) #122604 - GH-121723: Skip
test_config_queue_handler_multiprocessing_contextin emulated JIT CI #122969 - [3.13] GH-121723: Skip test_config_queue_handler_multiprocessing_context in emulated JIT CI (GH-122969) #122991
Metadata
Metadata
Assignees
Projects
Status
Done