Skip to content

Conversation

@christopherfujino
Copy link
Contributor

@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
@christopherfujino christopherfujino force-pushed the run-hooks-when-handling-signals branch from e044271 to 7ac949b Compare September 12, 2023 23:49
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
Contributor Author

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

@christopherfujino christopherfujino merged commit 3d7cd35 into flutter:master Sep 13, 2023
@christopherfujino christopherfujino deleted the run-hooks-when-handling-signals branch September 13, 2023 20:05
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Sep 14, 2023
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 [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 [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 [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`.
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 15, 2023
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