-
Notifications
You must be signed in to change notification settings - Fork 26.8k
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
Engine->Flutter autoroller blocked after dart roll #133677
Comments
The related change in the commit range is https://dart-review.googlesource.com/c/sdk/+/323280 |
That commit is a fix for dart-lang/sdk#53334 which is copied from Flutter #129121. dart-lang/sdk#47985 may also be related. |
I would think that the test is wrong somewhere - it expects this exception to be unhandled but somewhere in the chain of futures there is a future with |
attn @goderbauer who is the author of the test ( https://github.com/flutter/flutter/blame/main/packages/flutter_tools/test/integration.shard/break_on_framework_exceptions_test.dart#L123 ) @goderbauer, it appears the test is asserting that platform channel handlers that throw cause the debugger to pause, but that is no longer happening because the behavior of the debugger has been changed in a way that is more correct. Specifically, it was reporting exception as "uncaught" erroneously when an Our options are:
|
On the second thought it might be a bug in the change as well. I did not account for Zones. I can check a bit later today or you should feel free to revert. |
This reverts commit 38e0046. Reason for revert: flutter/flutter#133677 Original change's description: > [vm] Treat Future.then(..., onError:...) as catch all handler > > Commit a52f2b9 which reworked awaiter stack unwinding and its > integration with debugger introduced the following regression: > it stopped treating `Future` listeners which had both `onValue` > and `onError` callbacks as catch all exception handlers. Only > listners with `onError` callback (those created with > `Future.onError`) were treated as a catch all handler. > > This meant that debugger started to treat exceptions in the > code below as uncaught: > > ``` > Future<void> foo() { > await 0; > throw ''; > } > > await foo().then(..., onError: (e, st) { > > }); > ``` > > This change fixes this regression by checking if > `FutureListener.state & stateCatchError != 0` instead of > more narrow `FutureListener.state == stateCatchError` which > only detects listeners which only catch errors but do not > handle values. The new predicate matches > `FutureListener.handlesError`. > > Fixes #53334 > > TEST=service/pause_on_unhandled_async_exceptions_test > > Fixed: 53334 > Change-Id: I374114b7a7b2ef86b7ed6bf7d5e7cf71ba6054dc > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/323280 > Reviewed-by: Alexander Markov <alexmarkov@google.com> > Reviewed-by: Ben Konyi <bkonyi@google.com> > Commit-Queue: Slava Egorov <vegorov@google.com> Change-Id: Id20a6929aac93511173c7467caee91e2488696ed No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/323429 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Siva Annamalai <asiva@google.com> Reviewed-by: Ben Konyi <bkonyi@google.com>
revert of above CL has landed, closing issue. |
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of |
First example of roll failure: #133624
dart roll: flutter/engine#45262
dart commits in roll: https://dart.googlesource.com/sdk.git/+log/0cea73a8d3c3..96d3a79547fc
I looked through the commit messages and nothing immediately jumped out at me.
error log
The text was updated successfully, but these errors were encountered: