Fix issue when running shards on Android (#1853) #1998
+5
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed changes
https://github.com/mobile-dev-inc/maestro/blob/53e31b47e43ff7482fe52e26c6d6cb05285bd2fa/maestro-client/src/main/java/maestro/drivers/AndroidDriver.kt#L180-L182
The issue seems to originate in the simultaneous call to
blockingStubWithTimeout.deviceInfo
inAndroidDriver#deviceInfo()
fromMaestro#deviceInfo()
which causes the following error:Stacktrace "java.net.ConnectException: Connection refused"
Even though
cachedDeviceConfig
islazy
which means it's synchronized, it seems that the issue happens because all the calls come from on same thread.https://github.com/mobile-dev-inc/maestro/blob/f9f4cc864116cc0e843fc64f795dbada2e7c42e2/maestro-client/src/main/java/maestro/Maestro.kt#L46-L48
I added a semaphore in
AndroidDevice#runDeviceCall
to ensure it can only be called once at a time.https://github.com/mobile-dev-inc/maestro/blob/95ee50bb1109b4b8bfd61b4e11097a89eaae0c9a/maestro-client/src/main/java/maestro/drivers/AndroidDriver.kt#L1065-L1067
This seems to have fixed the issue. From now on, calls to
runDeviceCall
will not happen synchronously.Testing
Thread.sleep
and rebuildingmaestro test --shards 2 flows/
with a folder with around 7 successful flowsIssues fixed
Linked #1867
Fixes #1853