gh-139462: Make the ProcessPoolExecutor BrokenProcessPool exception report which child process terminated#139486
gh-139462: Make the ProcessPoolExecutor BrokenProcessPool exception report which child process terminated#139486gpshead merged 10 commits intopython:mainfrom
Conversation
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
ZeroIntensity
left a comment
There was a problem hiding this comment.
Per the bot, please add a news entry, and please also update the "What's New in Python 3.15" document.
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
ZeroIntensity
left a comment
There was a problem hiding this comment.
Just down to docs nitpicks for me. The rest looks good.
Misc/NEWS.d/next/Library/2025-10-02-22-29-00.gh-issue-139462.VZXUHe.rst
Outdated
Show resolved
Hide resolved
|
There was a fun issue where the precommit merge conflict checker thought that a perfectly legitimate string was a problem: I removed one of the |
|
Thanks @ZeroIntensity, appreciate all the feedback! |
ZeroIntensity
left a comment
There was a problem hiding this comment.
Thanks, this looks good to me. I'll wait for @gpshead as the multiprocessing expert to decide on the weird triple-quotes in the message.
|
Hmm, something seems to be causing the tests to hang. |
|
Hi @ZeroIntensity and @gpshead! Tests are passing, let me know if there are any other changes you'd like me to make, or if this is good to go. |
|
@AA-Turner @ZeroIntensity @gpshead thanks for all the feedback thus far! Let me know if there's anything else you'd like me to change here. |
…tion report which child process terminated (pythonGH-139486) Report which process terminated as cause of BPE
See #139462 for more context.
Short summary: prior to this change, if a child process segfaulted when running in a concurrent.futures.ProcessPoolExecutor, the user would get a BrokenProcessPool exception with no information about which child process terminated or why.
In order to improve the debugging experience, this change attempts to report which child process terminated and with what exit code. For instance, if I have a worker process that segfaults, I'll now see something like: