-
Notifications
You must be signed in to change notification settings - Fork 29.1k
[flutter_tools] remove fallback discovery and observatory timeout #68756
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
[flutter_tools] remove fallback discovery and observatory timeout #68756
Conversation
// "--enable-checked-mode" and "--verify-entry-points" should always be | ||
// passed when we launch debug build via "ios-deploy". However, we don't | ||
// pass them if a certain environment variable is set to enable the | ||
// "system_debug_ios" integration test in the CI, which simulates a |
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.
RIP system_debug_ios
I kept trying to resurrect that to test the iOS 14 launch from home screen but I couldn't get it to work. Want to delete it?
\cc @christopherfujino re #43029
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.
I think it's already deleted. We can't launch from home going forward so it doesn't seem worth keeping this code aound
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.
So it is. #68107
I was hoping to use it to show when it's launched from the home screen on iOS 14 it shows the nice warning explaining what happened. But I couldn't get it to work.
@@ -132,12 +129,6 @@ void main() { | |||
final IOSDevice device = setUpIOSDevice( |
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.
Remove // Still uses context for analytics.
I know this isn't the right line but GitHub doesn't let me comment closer.
packageId: packageId, | ||
packageName: FlutterProject.current().manifest.appName, | ||
); | ||
final Uri localUri = await observatoryDiscovery.uri; |
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.
This will hang forever when the app crashes because the log reader will never find the VM service URI log line. That will be fixed on iOS 13+ with #68844 on top of this change. However we need to figure out how to handle <=iOS 12 crashes on launch that are syslog scanning.
I will work a bit on unifying the code paths. I tried the debugging dance on iOS 9 and it didn't work, but I didn't investigate too hard because the syslog scanning was working.
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.
stable v 2.5.3, run on iphone x and 8 with iOS 15+ , after install and launching still got observatory timeout log and then stuck for about 90s to get the writing analzed variants log, then main page shows, here's the log blow
Running Xcode build...
Xcode build done. 21.0s
Installing and launching...
iOS Observatory not discovered after 30 seconds. This is taking much longer than expected...
(lldb) 2021-11-18 10:40:33.805817+0800 Runner[5156:2537590] Writing analzed variants.
Debug service listening on ws://127.0.0.1:49248/s6cQ7AOhIgE=/ws
…utter into retry_on_launch_failure
Updated to remove globals and added a 30 second timeout to observatory discovery |
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.
LGTM let's see what happens.
Description
The flutter run failures are cause by the application occasionally taking a long time to start up. This caused the ios fallback discovery to kick in, which will always fail if the application hasn't started. Solution: remove the iOS fallback discovery and wait up to 30 seconds.
This has not proven to reduce the flakes, but it does at least remove one error case and removes code that will no longer work without the mDNS fallback.