-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Reland "Make sure all isolates start during flutter driver tests" #63167
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
Conversation
guidezpl
left a comment
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.
_ ___ _____ __ __
| | / __|_ _| \/ |
| |_| (_ | | | | |\/| |
|____\___| |_| |_| |_|
|
PR triage: @guidezpl @speaking-in-code Is this ready to be submitted? Or still waiting on anything? |
|
"Google testing" is the last pending check. Not sure how long that normally takes, but it's been a few days now. Other than that, AFAIK, this is good for submission now. |
|
Good to merge after Google testing gets unstuck. @renyou I was unable to manually test this PR on go/flutter-rob. Could you have a look? |
|
Anything I can do to get the Google testing unstuck? |
|
There were some genuine failed internal tests, I'll do some more digging this week to figure out the root cause |
|
Alright, after doing some digging, it seems the bug still exists. I found two issues while using the repro case from the original issue.
I think this is because the isolate spawned by
But with this PR, the additional attempt to resume fails hard, since the error is a If you'd like to continue work to try and find a solution to these, I encourage you to test against the original repro case. Testing against the gallery was a mistake on my part; Please don't hesitate to reach out to past contributors, who have much more knowledge about the driver than I do. |
|
thanks @guidezpl. will try this out on more test cases to see if I can repro what you're seeing. |
|
I've added an integration test for isolates to the flutter examples directory. Not sure if that's the right place for it, but having it around is useful. The issues you found were fixed as follows:
One oddness I've encountered is isolate.pauseEvent being set to VMNoneEvent. That happens when I'm using the audio_service library, which is starting isolates from a flutter plugin on iOS and Android. I haven't been able to reproduce that with a simpler test case, so there's no integration test for that yet. If you have simple ideas for how to reproduce VMNoneEvent, let me know, I can try to add that test case as well. I can see that the analyze-linux step has failed due to my changes. I'll clean that up tomorrow. |
|
We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google. ℹ️ Googlers: Go here for more info. |
784e9a3 to
d30e36b
Compare
Description
Fixes #24703.
Flutter driver has problems when flutter apps use more than a single isolate. The other isolates don't start, so apps malfunction. This PR fixes the problem by listening for new isolates to become runnable, and automatically starting them.
Related Issues
#24703.
Tests
I added the following tests:
Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]). This will ensure a smooth and quick review process.///).flutter analyze --flutter-repo) does not report any problems on my PR.Breaking Change
Did any tests fail when you ran them? Please read [Handling breaking changes].