ably / ably-flutter

A wrapper around our Cocoa and Java client library SDKs, providing iOS and Android support for those using Flutter and Dart.
https://ably.com/download
Apache License 2.0
60 stars 16 forks source link

CI: Fix flaky Android emulators #232

Open ben-xD opened 3 years ago

ben-xD commented 3 years ago

CI jobs are randomly failing with Original error: ext.flutter.driver: (112) Service has disappeared. We need to investigate further.

For an example, see https://github.com/ably/ably-flutter/runs/4241734082?check_suite_focus=true

┆Issue is synchronized with this Jira Bug by Unito

QuintinWillison commented 2 years ago

Also seen here (Android 21) and here (Android 29).

I notice that we have a comment in our integration testing workflow:

ubuntu-latest cannot be used as it is only a docker container, and unfortunately running hardware acceleration in container is not allowed by android emulator.

Which immediately makes me ask the question "do we need hardware acceleration?". Perhaps we can opt out of that in order to have tests run more reliably... macOS hosts are always less available also, due to GitHub limits.

ikurek commented 2 years ago

@QuintinWillison It's a matter of performance - without hardware acceleration the emulator is very slow, so the tests will take longer co complete. I've seen this issue raised multiple times on different Ci platforms and usually it's best to stick with MacOS, even the CI step developer has an open issue about this: https://github.com/ReactiveCircus/android-emulator-runner/issues/46

QuintinWillison commented 2 years ago

@ikurek Sorry, I'm only just catching up with some notifications so seen your comment. We've been successfully using ubuntu-latest for just over a month in ably-java's emulation workflow, and my preference (at the current time) is for us to switch all Android virtual device emulation runs to this configuration in order to reduce contention for limited availability of macOS hosts.

To be really clear:

There is a possible plan for us to do something to upgrade our capacity to support more simultaneous macOS hosts, but it's not come to anything yet. FYI, @jaley. So, in the meantime, let's switch to Ubuntu and get some more predictability for workflow runs.