chore(scm): avoid dropping child before wait #9564
Merged
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.
Description
In the case of an error when parsing
git
output. We would drop aChild
withoutwait
ing on it which results in a zombie process as the pid is never reaped.From Rust docs
When there was a parse error we would
kill
the child process, but never reap the pid. This PR ensures we make a best effort to do just that. The way I'm calling wait is probably overkill, but I wanted to ensure that we don't introduce any accidental waiting on a process that didn't receive the kill signal.Sources for comments:
Testing Instructions
I have done some manual confirmation that this works for a command like
bash -c "sleep 100"
where it willHoping to get someone from #9455 to test this out in a canary and confirm this helps.