Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve signal handling. #642

Merged
merged 1 commit into from
Nov 28, 2024
Merged

Improve signal handling. #642

merged 1 commit into from
Nov 28, 2024

Conversation

tjgq
Copy link
Contributor

@tjgq tjgq commented Nov 28, 2024

Every signal specially recognized by Bazel that doesn't cause an immediate exit shouldn't cause Bazelisk to exit either, as this risks orphaning the Bazel process and making it uncontrollable by the terminal. (You can see this in action by sending a Ctrl-\ to Bazelisk, which causes it to immediately exit and makes it impossible to abort the still running Bazel invocation with Ctrl-C.)

Note that forwarding is not necessary for a signal delivered by the terminal (i.e. through Ctrl-C or Ctrl-\) because the terminal already delivers it to the entire process group. For manually delivered signals, users should arguably know what they're doing, so let's not go out of our way to forward them.

This also disables the printing of a Go stack dump upon SIGQUIT, which is unhelpful: users tend to report it in place of the far more useful Java thread dump.

@tjgq tjgq force-pushed the sigquit branch 3 times, most recently from 9015a56 to c035526 Compare November 28, 2024 14:14
Every signal specially recognized by Bazel that doesn't cause an immediate exit
shouldn't cause Bazelisk to exit either, as this risks orphaning the Bazel
process and making it uncontrollable by the terminal. (You can see this in action
by sending a Ctrl-\ to Bazelisk, which causes it to immediately exit and makes it
impossible to abort the still running Bazel invocation with Ctrl-C.)

Note that forwarding is not necessary for a signal delivered by the terminal
(i.e. through Ctrl-C or Ctrl-\) because the terminal already delivers it to the
entire process group. For manually delivered signals, users should arguably
know what they're doing, so let's not go out of our way to forward them.

This also disables the printing of a Go stack dump upon SIGQUIT, which is
unhelpful: users tend to report it in place of the far more useful Java thread
dump.
@fweikert fweikert merged commit edab5e0 into bazelbuild:master Nov 28, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants