You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a worker process terminates unexpectedly, ``concurrent.futures.ProcessPoolExecutor`` no longer shares one ``BrokenProcessPool`` exception instance among all failed futures. This was unsafe because exceptions are mutable. Malformed (repeated) tracebacks were the most common symptom of this bug.
1
+
When a worker process terminates unexpectedly,
2
+
:class:`concurrent.futures.ProcessPoolExecutor` now sets a separate
3
+
:exc:`~concurrent.futures.process.BrokenProcessPool` exception on each pending
4
+
future instead of sharing a single instance among them all. Sharing one
5
+
exception produced malformed tracebacks: each
6
+
:meth:`Future.result() <concurrent.futures.Future.result>` call re-raised the
7
+
same object, appending another copy of the traceback to it.
0 commit comments