[Test] Fix pytest termination with @create_new_process_for_each_test("fork") #29130
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I am seeing pytest terminating itself when cleaning up child processes for any test that uses
@create_new_process_for_each_test("fork"):It looks like the
SIG_IGNisn't working for some reason and, maddeningly, I haven't been able to isolate it with a more simple reproducer. Also, of course, this doesn't seem to be happening in thedocker run --initenvironment in CI.While it would be good to understand exactly what's going on, it seems pretty clear that a simple fix is to put the child process in its own process group, and terminate that ... rather than terminating the parent and relying on
SIG_IGN.#23795 and #7054 (#7053) are two relevant past PRs.
/cc @njhill @youkaichao