New submission from Sander Land <sander.l...@cognite.com>:

The multiprocessing Queue uses a thread to pickle and send the object after a 
call to put. When pickling fails (e.g. due to recursion depth) the exception is 
not returned to the caller to .put but instead dumped on the screen, leaving 
any multiprocessing pools in a very unhappy state.

Suggested fix: pickle the object in the same thread as the caller and send the 
pickled object to the thread, ensuring the caller to .put can catch the 
exception.

Sad workaround: (un)pickle anything sent via this queue yourself.

----------
components: Library (Lib)
files: minimal_repr.py
messages: 365816
nosy: Sander Land
priority: normal
severity: normal
status: open
title: multiprocessing.Queue.put can fail silently due to pickle errors
type: behavior
versions: Python 3.7
Added file: https://bugs.python.org/file49036/minimal_repr.py

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

Reply via email to