fix: use exec to invoke the stage-2 bootstrap for non-zip case#2047
Merged
rickeylev merged 3 commits intobazel-contrib:mainfrom Jul 10, 2024
Merged
fix: use exec to invoke the stage-2 bootstrap for non-zip case#2047rickeylev merged 3 commits intobazel-contrib:mainfrom
exec to invoke the stage-2 bootstrap for non-zip case#2047rickeylev merged 3 commits intobazel-contrib:mainfrom
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
exec to invoke the stage-2 bootstrap in the common case
exec to invoke the stage-2 bootstrap in the common caseexec to invoke the stage-2 bootstrap for non-zip case
Also remove a defunct comment since we're here
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When the two-stage bootstrap is used, the parent shell process runs python as a child
process, which changes how signals are propagated. Specifically, if a signal is sent
directly to the parent (e.g.
kill $parent), the child process (python) won't receiveit and it will appear to be ignored. This is because the parent process is busy waiting
for the child process.
To fix, invoke the python process using
execinstead. Because the process is entirelyreplaced, signals are sent directly to the replacement. This can't be used for zip files,
though, because they rely on a catching the exit signal to perform cleanup of the extracted
files.
Fixes #2043