-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Mark integration_ui flaky #17319
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
Merged
Merged
Mark integration_ui flaky #17319
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Member
Author
|
Another alternative: #17320 |
This test fails consistently on mac2 and mac3 with the attached Moto G4 devices but passes consistently on other machines. Adding a delay of 1s right after driver.connect() in setUpAll() causes it to pass on the machines in question, which suggests a race condition. Specifically it looks like connect returns the moment Flutter Driver identifies that the isolate is up and running, but empirically it looks like we start running the first test before the UI is actually up. This triggers a failure wherein we start looking for elements before they're onstage. Link to viewport.dart:213 at HEAD: https://github.com/flutter/flutter/blob/b2b46659262c66ff13abc2b8016a94a47646eaad/packages/flutter/lib/src/widgets/viewport.dart#L213 Stack trace: FlutterDriver waitFor should find text "present" ``` DriverError: Error in Flutter application: Uncaught extension error while executing waitFor: NoSuchMethodError: The getter 'visible' was called on null. Receiver: null Tried calling: visible #0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:46:5) flutter#1 _ViewportElement.debugVisitOnstageChildren. (package:flutter/src/widgets/viewport.dart:213:36) flutter#2 WhereIterator.moveNext (dart:_internal/iterable.dart:439:11) flutter#3 Iterable.forEach (dart:core/iterable.dart) flutter#4 _ViewportElement.debugVisitOnstageChildren (package:flutter/src/widgets/viewport.dart:214:8) flutter#5 _DepthFirstChildIterator._reverseChildrenOf (package:flutter_test/src/all_elements.dart:54:15) flutter#6 _DepthFirstChildIterator.moveNext (package:flutter_test/src/all_elements.dart:45:19) flutter#7 CachingIterable._fillNext (package:flutter/src/foundation/basic_types.dart:252:27) flutter#8 _LazyListIterator.moveNext (package:flutter/src/foundation/basic_types.dart:279:21) flutter#9 WhereIterator.moveNext (dart:_internal/iterable.dart:438:22) flutter#10 CachingIterable._fillNext (package:flutter/src/foundation/basic_types.dart:252:27) flutter#11 _LazyListIterator.moveNext (package:flutter/src/foundation/basic_types.dart:279:21) flutter#12 Iterable.isEmpty (dart:core/iterable.dart:449:33) flutter#13 Iterable.isNotEmpty (dart:core/iterable.dart:456:27) flutter#14 FlutterDriverExtension._waitForElement. (package:flutter_driver/src/extension/extension.dart:215:51) flutter#15 FlutterDriverExtension._waitUntilFrame (package:flutter_driver/src/extension/extension.dart:197:19) flutter#16 FlutterDriverExtension._waitForElement (package:flutter_driver/src/extension/extension.dart:215:11) flutter#17 FlutterDriverExtension._waitFor (package:flutter_driver/src/extension/extension.dart:286:11) flutter#18 FlutterDriverExtension.call (package:flutter_driver/src/extension/extension.dart:168:51) flutter#19 BindingBase.registerServiceExtension. (package:flutter/src/foundation/binding.dart:370:32) ``` Removes a previous hack that no longer appears to help (adding a 1 second delay in setUpAll() does seem to work around this issue though).
Contributor
|
lgtm |
DaveShuckerow
pushed a commit
to DaveShuckerow/flutter
that referenced
this pull request
May 14, 2018
This test fails consistently on mac2 and mac3 with the attached Moto G4 devices but passes consistently on other machines. Adding a delay of 1s right after driver.connect() in setUpAll() causes it to pass on the machines in question, which suggests a race condition. Specifically it looks like connect returns the moment Flutter Driver identifies that the isolate is up and running, but empirically it looks like we start running the first test before the UI is actually up. This triggers a failure wherein we start looking for elements before they're onstage. Link to viewport.dart:213 at HEAD: https://github.com/flutter/flutter/blob/b2b46659262c66ff13abc2b8016a94a47646eaad/packages/flutter/lib/src/widgets/viewport.dart#L213 Stack trace: FlutterDriver waitFor should find text "present" ``` DriverError: Error in Flutter application: Uncaught extension error while executing waitFor: NoSuchMethodError: The getter 'visible' was called on null. Receiver: null Tried calling: visible #0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:46:5) flutter#1 _ViewportElement.debugVisitOnstageChildren. (package:flutter/src/widgets/viewport.dart:213:36) flutter#2 WhereIterator.moveNext (dart:_internal/iterable.dart:439:11) flutter#3 Iterable.forEach (dart:core/iterable.dart) flutter#4 _ViewportElement.debugVisitOnstageChildren (package:flutter/src/widgets/viewport.dart:214:8) flutter#5 _DepthFirstChildIterator._reverseChildrenOf (package:flutter_test/src/all_elements.dart:54:15) flutter#6 _DepthFirstChildIterator.moveNext (package:flutter_test/src/all_elements.dart:45:19) flutter#7 CachingIterable._fillNext (package:flutter/src/foundation/basic_types.dart:252:27) flutter#8 _LazyListIterator.moveNext (package:flutter/src/foundation/basic_types.dart:279:21) flutter#9 WhereIterator.moveNext (dart:_internal/iterable.dart:438:22) flutter#10 CachingIterable._fillNext (package:flutter/src/foundation/basic_types.dart:252:27) flutter#11 _LazyListIterator.moveNext (package:flutter/src/foundation/basic_types.dart:279:21) flutter#12 Iterable.isEmpty (dart:core/iterable.dart:449:33) flutter#13 Iterable.isNotEmpty (dart:core/iterable.dart:456:27) flutter#14 FlutterDriverExtension._waitForElement. (package:flutter_driver/src/extension/extension.dart:215:51) flutter#15 FlutterDriverExtension._waitUntilFrame (package:flutter_driver/src/extension/extension.dart:197:19) flutter#16 FlutterDriverExtension._waitForElement (package:flutter_driver/src/extension/extension.dart:215:11) flutter#17 FlutterDriverExtension._waitFor (package:flutter_driver/src/extension/extension.dart:286:11) flutter#18 FlutterDriverExtension.call (package:flutter_driver/src/extension/extension.dart:168:51) flutter#19 BindingBase.registerServiceExtension. (package:flutter/src/foundation/binding.dart:370:32) ``` Removes a previous hack that no longer appears to help (adding a 1 second delay in setUpAll() does seem to work around this issue though).
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Also removes a previous hack that no longer appears to help (adding a 1
second delay in setUpAll() does seem to work around this issue though).
This test fails consistently on mac2 and mac3 with the attached Moto G4
devices but passes consistently on other machines.
Adding a delay of 1s right after driver.connect() in setUpAll() causes
it to pass on the machines in question, which suggests a race condition.
Specifically it looks like connect returns the moment Flutter Driver
identifies that the isolate is up and running, but empirically it looks
like we start running the first test before the UI is actually up. This
triggers a failure wherein we start looking for elements before they're
onstage.
Link to viewport.dart:213 at HEAD:
flutter/packages/flutter/lib/src/widgets/viewport.dart
Line 213 in b2b4665
Stack trace:
FlutterDriver waitFor should find text "present"