gh-94777: Fix deadlock in ProcessPoolExecutor#94784
Conversation
|
Most changes to Python require a NEWS entry. Please add it using the blurb_it web app or the blurb command-line tool. |
itamaro
left a comment
There was a problem hiding this comment.
thanks for the report and the fix!
I was able to repro the issue (on MacOS, 3.13 main branch as of today) and confirmed this patch fixes it.
|
@gpshead @pitrou You are listed in devguide as experts for multiprocessing module; any concerns about merging this fix? We ran into this deadlock in an internal codebase and @mpage independently investigated and produced this exact same fix, before we found this issue and PR. So I'm inclined to merge, but not a multiprocessing expert. |
|
@carljm Thanks for the ping. No objection from me. |
|
Oh nice, LGTM. Thanks! I've tweaked the NEWS entry and hit the auto-merge button. |
|
Sorry @lpaulot and @gpshead, I had trouble checking out the |
Fixes a hang in multiprocessing process pool executor when a child process crashes and code could otherwise block on writing to the pipe. See pythonGH-94777 for more details. (cherry picked from commit 6782fc0) Co-authored-by: Louis Paulot <55740424+lpaulot@users.noreply.github.com>
|
GH-106607 is a backport of this pull request to the 3.11 branch. |
Fixes a hang in multiprocessing process pool executor when a child process crashes and code could otherwise block on writing to the pipe. See pythonGH-94777 for more details. (cherry picked from commit 6782fc0) Co-authored-by: Louis Paulot <55740424+lpaulot@users.noreply.github.com>
|
GH-106609 is a backport of this pull request to the 3.12 branch. |
) gh-94777: Fix deadlock in ProcessPoolExecutor (GH-94784) Fixes a hang in multiprocessing process pool executor when a child process crashes and code could otherwise block on writing to the pipe. See GH-94777 for more details. (cherry picked from commit 6782fc0) Co-authored-by: Louis Paulot <55740424+lpaulot@users.noreply.github.com>
) gh-94777: Fix deadlock in ProcessPoolExecutor (GH-94784) Fixes a hang in multiprocessing process pool executor when a child process crashes and code could otherwise block on writing to the pipe. See GH-94777 for more details. (cherry picked from commit 6782fc0) Co-authored-by: Louis Paulot <55740424+lpaulot@users.noreply.github.com>
Fixes #94777