bpo-19675: Terminate processes if construction of a pool is failing.#5614
bpo-19675: Terminate processes if construction of a pool is failing.#5614JulienPalard merged 5 commits into
Conversation
pitrou
left a comment
There was a problem hiding this comment.
Thanks for the PR @JulienPalard. See the comments I posted.
Sorry, something went wrong.
|
When you're done making the requested changes, leave the comment: |
Sorry, something went wrong.
|
I have made the requested changes; please review again. |
Sorry, something went wrong.
|
Thanks for making the requested changes! @pitrou: please review the changes made to this pull request. |
Sorry, something went wrong.
|
Thank you @JulienPalard. Do you think you could easily add a test? |
Sorry, something went wrong.
|
@pitrou I'm testing it by changing rlimit, by throwing random "low" value at it until "some" forks succeed and some are failing. It's really bad for a test case, I can try to produce a stable test case, maybe not with rlimit though (will probably be random when running parallel tests?). |
Sorry, something went wrong.
|
@pitrou Tried to write a unit test. It works but I'm not fond of playing with context this way. Does it look OK for someone? |
Sorry, something went wrong.
The MagicMock thing looks fragile to me. Perhaps you can use a real context and temporarily swap out its |
Sorry, something went wrong.
# Conflicts: # Lib/test/_test_multiprocessing.py
|
Wouldn't this need to be backported to 2.7 as well? |
Sorry, something went wrong.
|
@JulienPalard maybe you could update it with the last master and submit it again. |
Sorry, something went wrong.
# Conflicts: # Lib/multiprocessing/pool.py
|
Oh thanks for bringing it back, forgot it þ |
Sorry, something went wrong.
|
Thanks @JulienPalard for the PR 🌮🎉.. I'm working now to backport this PR to: 3.6, 3.7. |
Sorry, something went wrong.
|
Sorry, @JulienPalard, I could not cleanly backport this to |
Sorry, something went wrong.
|
Sorry, @JulienPalard, I could not cleanly backport this to |
Sorry, something went wrong.
Trying another implementation of #57, avoiding to terminate all processes of a pool if a single one is failing to fork during the normal execution of the pool.
https://bugs.python.org/issue19675