Skip to content

[team] flutter_gallery_ios32__transition_perf flakes "Original error: Bad state: The client closed with pending request "ext.flutter.driver"" #60559

Closed

Description

@christopherfujino

This test passes locally in attempts by myself and @jmagman, but failed twice in the devicelab, while passing on a third try (all on the same host, mac 11. This is a subset of the devicelab logs:

2020-06-29T13:35:45.473687: stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.479773: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.487072: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.497545: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.502830: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.536602: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.549874: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.551607: stdout: 
2020-06-29T13:35:45.551681: stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.555817: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.562232: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.568375: stdout: 
stdout: [VERBOSE0:compositor_context.cc(89)] Using SaveLayer to protect non-readback surface
2020-06-29T13:35:45.574812: stdout: 
stdout: flutter: > VideoDemo initController "butterfly" 
2020-06-29T13:35:45.586061: stdout: 
stdout: flutter: > VideoDemo initController "bee" 
2020-06-29T13:35:45.592605: stdout: 
stdout: flutter: > VideoDemo dispose
2020-06-29T13:35:45.598697: stdout: 
stdout: flutter: < VideoDemo dispose
2020-06-29T13:35:45.604924: stdout: 
stdout: flutter: > VideoDemo initController "butterfly" 
2020-06-29T13:35:45.631057: stdout: 
stdout: flutter: > VideoDemo initController "bee" 
2020-06-29T13:35:45.642029: stdout: 
stdout: flutter: > VideoDemo dispose
2020-06-29T13:35:45.650979: stdout: 
stdout: flutter: < VideoDemo dispose
2020-06-29T13:36:56.570709: stdout: Xcode build done.                                           72.5s
2020-06-29T13:37:34.524157: stdout:   dart:async/schedule_microtask.dart 50:5                         _startMicrotaskLoop
stdout:   dart:isolate-patch/isolate_patch.dart 118:13                    _runPendingImmediateCallback
stdout:   dart:isolate-patch/timer_impl.dart 404:11                       _Timer._runTimers
stdout:   dart:isolate-patch/timer_impl.dart 428:5                        _Timer._handleMessage
stdout:   dart:isolate-patch/isolate_patch.dart 168:12                    _RawReceivePortImpl._handleMessage
stdout: 
stdout: 
2020-06-29T13:37:34.525599: stdout:   DriverError: Failed to fulfill Scroll due to remote error
stdout:   Original error: Bad state: The client closed with pending request "ext.flutter.driver".
stdout:   Original stack trace:
stdout:   #0      new Client.withoutJson.<anonymous closure> (package:json_rpc_2/src/client.dart:70:24)
stdout:   #1      StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:209:15)
stdout:   #2      StackZoneSpecification._registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:119:48)
stdout:   #3      _rootRun (dart:async/zone.dart:1182:47)
stdout:   #4      _CustomZone.run (dart:async/zone.dart:1093:19)
stdout:   #5      _FutureListener.handleWhenComplete (dart:async/future_impl.dart:167:18)
stdout:   #6      Future._propagateToListeners.handleWhenCompleteCallback (dart:async/future_impl.dart:666:39)
stdout:   #7      Future._propagateToListeners (dart:async/future_impl.dart:722:37)
stdout:   #8      Future._propagateToListeners (dart:async/future_impl.dart:621:9)
stdout:   #9      Future._completeWithValue (dart:async/future_impl.dart:529:5)
stdout:   #10     Future._asyncCompleteWithValue.<anonymous closure> (dart:async/future_impl.dart:567:7)
stdout:   #11     StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:209:15)
stdout:   #12     StackZoneSpecification._registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:119:48)
stdout:   #13     _rootRun (dart:async/zone.dart:1190:13)
2020-06-29T13:37:34.526147: stdout:   #14     _CustomZone.run (dart:async/zone.dart:1093:19)
stdout:   #15     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
stdout:   #16     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
stdout:   #17     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
stdout:   #18     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
stdout:   #19     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
2020-06-29T13:37:34.526386: stdout:   #20     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:169:5)

Activity

  1. christopherfujino commented on Jun 30, 2020

    @christopherfujino
    ContributorAuthor

    A similar failure occurred previous to my PR landing in f6cd2d4, so I am considering this a flake and will re-land.

  2. changed the title [-][team] flutter_gallery_ios32__transition_perf failed in devicelab with new ios binaries, passes locally[/-] [+][team] flutter_gallery_ios32__transition_perf flakes "Original error: Bad state: The client closed with pending request "ext.flutter.driver""[/+] on Jul 1, 2020
  3. tvolkert commented on Jul 17, 2020

    @tvolkert
    Contributor

    This has happened 22 out of the last 24 runs of the test. I'm going to mark the test as flaky and set the priority of this at P2 (where the customer is the Flutter team).

  4. added
    frameworkflutter/packages/flutter repository. See also f: labels.
    platform-iosiOS applications specifically
    customer: galleryRelating to flutter/gallery repository. Please transfer non-framework issues there.
    and removed
    customer: galleryRelating to flutter/gallery repository. Please transfer non-framework issues there.
    on Jul 21, 2020
  5. 11 remaining items

  6. goderbauer commented on Aug 26, 2020

    @goderbauer
    Member

    I see that #62064 landed. Did that help?

  7. liyuqian commented on Aug 26, 2020

    @liyuqian
    Contributor

    According to this table, flutter_gallery__transition_perf_e2e_ios32's flaky rate is about 2% while flutter_gallery_ios32__transition_perf's flaky rate is about 10%.

    Most perf metrics seems to be quite close between flutter_gallery__transition_perf_e2e_ios32 and flutter_gallery_ios32__transition_perf, except the worst rasterization time.

    The worst rasterization time is bi-modal and it seems that the e2e version is more likely to get the slower time.

    If we're Ok with those metrics and the non-e2e version is too flaky, we can probably close this by turning off the non-e2e tests and only preserve the e2e test. CC @CareF

  8. CareF commented on Aug 27, 2020

    @CareF
    Contributor

    I think the worst rasterization time is a very unstable number when changing detailed implementation: this is not smoothed by other samples and as long as there's a single crazy frame this number changes significantly. I would trust more on the my result with FrameTiming, since in the old test the times are calculated from timestamps, and the number of the frame building time and rasterization time samples are not always agree, I have reason to doubt if we get any mixing of timeline events for the old numbers.

  9. zanderso commented on Aug 27, 2020

    @zanderso
    Member

    Do we know the root cause of the worst rasterization time being bimodal?

  10. liyuqian commented on Aug 28, 2020

    @liyuqian
    Contributor

    I believe the bimodal benchmark is caused by #64781. I also created another issue #64778 for the difference between e2e and flutter_driver perf tests. That difference should be fixed by #64780.

  11. liyuqian commented on Sep 8, 2020

    @liyuqian
    Contributor

    #65415 should fix this.

    Copied from the PR description of #65415:

    flutter_gallery__transition_perf_e2e_ios32 will be replacing this flaky
    test and all performance metrics are quite close:

    https://flutter-flutter-perf.skia.org/e/?queries=test%3Dflutter_gallery__transition_perf_e2e_ios32%26test%3Dflutter_gallery_ios32__transition_perf

    In the future, one can also compare the historical performance trend by
    adding those two tests in the same plot.

  12. github-actions commented on Aug 12, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  13. locked as resolved and limited conversation to collaborators on Aug 12, 2021
  14. added
    P0Critical issues such as a build break or regression
    and removed on Jun 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressionc: contributor-productivityTeam-specific productivity, code health, technical debt.c: flakeTests that sometimes, but not always, incorrectly passframeworkflutter/packages/flutter repository. See also f: labels.platform-iosiOS applications specificallyteam-infraOwned by Infrastructure team

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions