Skip to content

Failed assert in ScrollPosition.setPixels() #17597

@tvolkert

Description

@tvolkert

I have a driver test method that looks like the following:

  test('Foo', () async {
    await driver.scrollIntoView(find.byValueKey(fooKey));
    await driver.tap(find.byValueKey(fooKey));
    await driver.waitFor(find.text('Foo Text'));
    await driver.waitUntilNoTransientCallbacks();
    await driver.scroll(find.byType('ListView'), 0.0, -360.0, _scrollTimeout);
    ...
  });

Occasionally (~2% of the test runs), the following exception is thrown on the device, causing the app to be in an unexpected state (and causing the test to fail):

05-14 21:08:49.960  2623  2638 I flutter : ��╡ EXCEPTION CAUGHT BY GESTURE ╞�������������������������������������������������������������������
05-14 21:08:49.964  2623  2638 I flutter : The following assertion was thrown while handling a gesture:
05-14 21:08:49.964  2623  2638 I flutter : 'package:flutter/src/widgets/scroll_position.dart': Failed assertion: line 200 pos 12:
05-14 21:08:49.964  2623  2638 I flutter : 'SchedulerBinding.instance.schedulerPhase.index <= SchedulerPhase.transientCallbacks.index': is not
05-14 21:08:49.964  2623  2638 I flutter : true.
05-14 21:08:49.966  2623  2638 I flutter : Either the assertion indicates an error in the framework itself, or we should provide substantially
05-14 21:08:49.966  2623  2638 I flutter : more information in this error message to help you determine and fix the underlying cause.
05-14 21:08:49.966  2623  2638 I flutter : In either case, please report this assertion by filing a bug on GitHub:
05-14 21:08:49.966  2623  2638 I flutter :   https://github.com/flutter/flutter/issues/new
05-14 21:08:49.966  2623  2638 I flutter : When the exception was thrown, this was the stack:
05-14 21:08:49.978  2623  2638 I flutter : #2      ScrollPosition.setPixels (package:flutter/src/widgets/scroll_position.dart)
05-14 21:08:49.978  2623  2638 I flutter : #3      ScrollPositionWithSingleContext.setPixels (package:flutter/src/widgets/scroll_position_with_single_context.dart:84:18)
05-14 21:08:49.978  2623  2638 I flutter : #4      ScrollPositionWithSingleContext.applyUserOffset (package:flutter/src/widgets/scroll_position_with_single_context.dart:132:5)
05-14 21:08:49.978  2623  2638 I flutter : #5      ScrollDragController.update (package:flutter/src/widgets/scroll_activity.dart:373:14)
05-14 21:08:49.978  2623  2638 I flutter : #6      ScrollableState._handleDragUpdate (package:flutter/src/widgets/scrollable.dart:451:12)
05-14 21:08:49.978  2623  2638 I flutter : #7      DragGestureRecognizer.acceptGesture.<anonymous closure> (package:flutter/src/gestures/monodrag.dart:175:48)
05-14 21:08:49.978  2623  2638 I flutter : #8      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
05-14 21:08:49.978  2623  2638 I flutter : #9      DragGestureRecognizer.acceptGesture (package:flutter/src/gestures/monodrag.dart:175:9)
05-14 21:08:49.978  2623  2638 I flutter : #10     GestureArenaManager._resolveInFavorOf (package:flutter/src/gestures/arena.dart:263:12)
05-14 21:08:49.978  2623  2638 I flutter : #11     GestureArenaManager._resolve (package:flutter/src/gestures/arena.dart:222:9)
05-14 21:08:49.978  2623  2638 I flutter : #12     GestureArenaEntry.resolve (package:flutter/src/gestures/arena.dart:52:12)
05-14 21:08:49.978  2623  2638 I flutter : #13     OneSequenceGestureRecognizer.resolve (package:flutter/src/gestures/recognizer.dart:166:13)
05-14 21:08:49.978  2623  2638 I flutter : #14     DragGestureRecognizer.handleEvent (package:flutter/src/gestures/monodrag.dart:154:11)
05-14 21:08:49.978  2623  2638 I flutter : #15     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
05-14 21:08:49.978  2623  2638 I flutter : #16     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
05-14 21:08:49.978  2623  2638 I flutter : #17     __DriverBinding&BindingBase&ServicesBinding&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:143:19)
05-14 21:08:49.978  2623  2638 I flutter : #18     __DriverBinding&BindingBase&ServicesBinding&SchedulerBinding&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
05-14 21:08:49.978  2623  2638 I flutter : #19     FlutterDriverExtension._scroll (package:flutter_driver/src/extension/extension.dart:317:23)
05-14 21:08:49.978  2623  2638 I flutter : <asynchronous suspension>
05-14 21:08:49.978  2623  2638 I flutter : #20     FlutterDriverExtension.call (package:flutter_driver/src/extension/extension.dart:168:51)
05-14 21:08:49.978  2623  2638 I flutter : <asynchronous suspension>
05-14 21:08:49.978  2623  2638 I flutter : #21     BindingBase.registerServiceExtension.<anonymous closure> (package:flutter/src/foundation/binding.dart:370:32)
05-14 21:08:49.978  2623  2638 I flutter : <asynchronous suspension>
05-14 21:08:49.978  2623  2638 I flutter : #22     _runExtension (dart:developer/runtime/libdeveloper.dart:85:23)
05-14 21:08:49.978  2623  2638 I flutter : #23     _beginFrame (dart:ui/hooks.dart:104:6)
05-14 21:08:49.978  2623  2638 I flutter : (elided 2 frames from class _AssertionError)
05-14 21:08:49.979  2623  2638 I flutter : Handler: onUpdate
05-14 21:08:49.979  2623  2638 I flutter : Recognizer:
05-14 21:08:49.979  2623  2638 I flutter :   VerticalDragGestureRecognizer#2f5b5
05-14 21:08:49.979  2623  2638 I flutter : ����������������������������������������������������������������������������������������������������

/cc @Hixie

Metadata

Metadata

Assignees

Labels

c: flakeTests that sometimes, but not always, incorrectly passcustomer: mulligan (g3)t: flutter driver"flutter driver", flutter_drive, or a driver test

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions