-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Catch unable to start app exception #154970
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
Catch unable to start app exception #154970
Conversation
|
This worked in my local testing. I'm putting out this PR to see if it passes all integration tests. If so, I will add a specific test for this. |
It appears this change is causing a set of integration tests to deadlock. I suspect it's because I'm now await-ing two futures together. |
| globals.printTrace('test $ourTestCount: VM Service uri is not available'); | ||
| } | ||
| watcher?.handleStartedDevice(processVmServiceUri); | ||
| // These must be await-ed together, and if the first errors the second will never complete |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could you explain why if the first errors the second will never complete? setting eagerError: true implies this behavior, but it's not clear why this could happen
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, in real life, the most likely reason that the remoteChannelCompleter.future would error is because the app failed to start (for whatever reason). If the app fails to start, we're never gonna get a VM service URI, which is what testDevice.vmServiceUri is waiting for.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
at a high level, the trickiness here is because testDevice.vmServiceUri and testDevice.start() have dependencies between each other before they will both complete successfully, so if we fail someplace earlier we want to make sure we don't deadlock but handle it the error immediately (in particular, that the error bubble up from the right zone so the test runner knows there was a failure and it ends the test).
910567b to
c68aedc
Compare
flutter/flutter@5d83a98...c4c9f47 2024-09-17 [email protected] Roll Flutter Engine from a328f2362414 to 1376288f5c2a (1 revision) (flutter/flutter#155282) 2024-09-17 [email protected] Roll Flutter Engine from 04bc90bff86c to a328f2362414 (2 revisions) (flutter/flutter#155280) 2024-09-16 [email protected] Roll Flutter Engine from 6b698138c600 to 04bc90bff86c (3 revisions) (flutter/flutter#155277) 2024-09-16 [email protected] Added .keys to ColorSwatch (flutter/flutter#155262) 2024-09-16 [email protected] Roll Flutter Engine from 362b9bcdedce to 6b698138c600 (4 revisions) (flutter/flutter#155267) 2024-09-16 [email protected] Roll Packages from 330581f to df88c81 (7 revisions) (flutter/flutter#155261) 2024-09-16 [email protected] Extend 'flutter symbolize' to handle deferred loading units. (flutter/flutter#149315) 2024-09-16 [email protected] Catch unable to start app exception (flutter/flutter#154970) 2024-09-16 [email protected] Assert iOS framework artifact contains xcprivacy manifest (flutter/flutter#155187) 2024-09-16 [email protected] Roll Flutter Engine from 52dcc8a16d8b to 362b9bcdedce (1 revision) (flutter/flutter#155241) 2024-09-16 [email protected] Roll Flutter Engine from af4fe97fa13a to 52dcc8a16d8b (1 revision) (flutter/flutter#155238) 2024-09-16 [email protected] Roll Flutter Engine from 9aaea5a4bd50 to af4fe97fa13a (1 revision) (flutter/flutter#155235) 2024-09-16 [email protected] Roll Flutter Engine from fe22a199aca3 to 9aaea5a4bd50 (1 revision) (flutter/flutter#155232) 2024-09-15 [email protected] Roll Flutter Engine from f5ccef12c15c to fe22a199aca3 (1 revision) (flutter/flutter#155229) 2024-09-15 [email protected] Roll Flutter Engine from 622d4aec2e04 to f5ccef12c15c (1 revision) (flutter/flutter#155215) 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://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Fixes #153433