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

[flutter_tools] Run ShutdownHooks when handling signals #134590

Conversation

christopherfujino
Copy link
Member

@christopherfujino christopherfujino commented Sep 12, 2023

Fixes #134566.

Prior to this fix, ShutdownHooks were run in the private helper function _exit() defined in the package:flutter_tools/runner.dart library. Independent of this, the tool had signal handling logic that traps SIGINT and SIGTERM. However, these handlers called exit() from dart:io, and didn't run these hooks.

This PR moves the _exit() private helper to package:flutter_tools/src/base/process.dart and renames it to exitWithHooks(), so that it can be called by the signal handlers in package:flutter_tools/src/base/signals.dart.

@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Sep 12, 2023
Copy link
Contributor

@vashworth vashworth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@christopherfujino
Copy link
Member Author

Manually merging on red google testing because of: b/300299508#comment2

@christopherfujino christopherfujino merged commit 3d7cd35 into flutter:master Sep 13, 2023
119 of 120 checks passed
@christopherfujino christopherfujino deleted the run-hooks-when-handling-signals branch September 13, 2023 20:05
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Sep 14, 2023
flutter/flutter@61b890b...58ba6c2

2023-09-14 [email protected] Roll Packages from 06cd9e9 to 275b76c (1 revision) (flutter/flutter#134734)
2023-09-14 [email protected] Update plugin_ffi generated file to match FFIgen 9.0.0 (flutter/flutter#134614)
2023-09-14 [email protected] LinkedText (Linkify) (flutter/flutter#125927)
2023-09-14 [email protected] _DayPicker should build days using separate stetefull widget _Day. (flutter/flutter#134607)
2023-09-13 31859944 [email protected] Remove `Path.combine` call from `CupertionoTextSelectionToolbar` (flutter/flutter#134369)
2023-09-13 [email protected] Update KeepAlive.debugTypicalAncestorWidgetClass (flutter/flutter#133498)
2023-09-13 84124091 [email protected] Fix null check crash by ReorderableList (flutter/flutter#132153)
2023-09-13 [email protected] Roll Flutter Engine from 154d6fd601a3 to cd90cc8469fb (3 revisions) (flutter/flutter#134691)
2023-09-13 49699333 dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 2.21.5 to 2.21.6 (flutter/flutter#134692)
2023-09-13 [email protected] Roll Flutter Engine from b71b366e3de3 to 154d6fd601a3 (6 revisions) (flutter/flutter#134683)
2023-09-13 [email protected] [flutter_tools] Run ShutdownHooks when handling signals (flutter/flutter#134590)
2023-09-13 [email protected] Dispose routes in navigator when throwing exception (flutter/flutter#134596)
2023-09-13 [email protected] [framework] reduce ink sparkle uniform count. (flutter/flutter#133897)
2023-09-13 [email protected] Roll Flutter Engine from 5e671d5c90f9 to b71b366e3de3 (4 revisions) (flutter/flutter#134676)
2023-09-13 15619084 [email protected] Set the CONFIGURATION_BUILD_DIR in generated xcconfig when debugging core device (flutter/flutter#134493)
2023-09-13 [email protected] Bump gradle heap size limit in *everywhere* (flutter/flutter#134665)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/ doc/main/autoroll/README.md
Mairramer pushed a commit to Mairramer/flutter that referenced this pull request Oct 10, 2023
Fixes flutter#134566.

Prior to this fix, `ShutdownHooks` were run in the private helper
function `_exit()` defined in the `package:flutter_tools/runner.dart`
library. Independent of this, the tool had signal handling logic that
traps SIGINT and SIGTERM. However, these handlers called `exit()` from
`dart:io`, and didn't run these hooks.

This PR moves the `_exit()` private helper to
`package:flutter_tools/src/base/process.dart` and renames it to
`exitWithHooks()`, so that it can be called by the signal handlers in
`package:flutter_tools/src/base/signals.dart`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tool Affects the "flutter" command-line tool. See also t: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[flutter_tools] tool does not run shutdown hooks when being sent SIGINT
2 participants