[CP-stable][ Tool ] Don't try to reattach when attach target disappears (#179193)#179291
Conversation
Before this change, there was logic in `flutter attach` that would try and listen for a new application to attach to in the scenario the current target application disappeared. This behavior isn't documented, and has resulted in a `StateError` being thrown due to the VM service URIs stream being listened to multiple times. This change removes this behavior, which also prevents the `StateError` from being thrown. Fixes #156692, which is a top-10 crasher for the tool.
|
This pull request was opened from and to a release candidate branch. This should only be done as part of the official Flutter release process. If you are attempting to make a regular contribution to the Flutter project, please close this PR and follow the instructions at Tree Hygiene for detailed instructions on contributing to Flutter. Reviewers: Use caution before merging pull requests to release branches. Ensure the proper procedure has been followed. |
There was a problem hiding this comment.
Code Review
This pull request is a cherry-pick that fixes a crash in flutter attach when the target application disconnects. The core of the change is the removal of the automatic re-attachment logic, which was causing the crash. The code has been refactored for better clarity by splitting a large method into smaller, more focused ones. Additionally, several methods have been updated to return non-nullable integers, improving type safety. A new regression test has been added to ensure the fix is effective. The changes are well-structured and directly address the reported issue.
…disappears (#179193) (flutter/flutter#179291)
…disappears (#179193) (flutter/flutter#179291)
This pull request is created by automatic cherry pick workflow
Please fill in the form below, and a flutter domain expert will evaluate this cherry pick request.
Issue Link:
What is the link to the issue this cherry-pick is addressing?
#156692
Changelog Description:
Explain this cherry pick in one line that is accessible to most Flutter developers. See best practices for examples
flutter attachcan crash if the target application disconnects unexpectedly.Impact Description:
What is the impact (ex. visual jank on Samsung phones, app crash, cannot ship an iOS app)? Does it impact development (ex. flutter doctor crashes when Android Studio is installed), or the shipping production app (the app crashes on launch)
The
flutter attachprocess could crash when trying to attach to a new target after the initial target disappeared unexpectedly. This could result in an error popup in IDEs or an obvious crash on the CLI. This is a top-10 crasher for the tool.Workaround:
Is there a workaround for this issue?
N/A
Risk:
What is the risk level of this cherry-pick?
Test Coverage:
Are you confident that your fix is well-tested by automated tests?
Validation Steps:
What are the steps to validate that this fix works?
flutter runto deploy to an Android or iOS device.flutter attachto connect to the running application.qin theflutter runterminal.flutter attachprocess should simply exit with no crash.