devtools icon indicating copy to clipboard operation
devtools copied to clipboard

Flaky `eval_integration_test`

Open elliette opened this issue 2 months ago • 1 comments

Example: https://github.com/flutter/devtools/actions/runs/18733806183/job/53436545744?pr=9482

Failure 1
/home/runner/work/devtools/devtools/packages/devtools_app/test/shared/eval_integration_test.dart: EvalOnDartLibrary asyncEval supports expressions that do not start with the await keyword (failed)
  Retry: EvalOnDartLibrary asyncEval supports expressions that do not start with the await keyword
  Retry: EvalOnDartLibrary asyncEval supports expressions that do not start with the await keyword
  Retry: EvalOnDartLibrary asyncEval supports expressions that do not start with the await keyword
  TimeoutException after 0:01:00.000000: Test timed out after 1 minutes.
  dart:isolate  _RawReceivePort._handleMessage
  Evaluation `() {  final result = widgetInspectorService.toObject("inspector-0", "asyncEval-1") as List;  widgetInspectorService.disposeGroup("asyncEval-1");  return result;}()` failed with [ErrorRef id: objects/6/0, kind: UnhandledException, message: Unhandled exception:
  type 'Null' is not a subtype of type 'List<dynamic>' in type cast
  #0      Eval.<anonymous closure> ()
  #1      Eval ()
  #2      _WidgetsAppState.build (package:flutter/src/widgets/app.dart:1665:3)
  #3      StatefulElement.build (package:flutter/src/widgets/framework.dart:5934:27)
  #4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5820:15)
  #5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #6      Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #7      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #8      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #10     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #11     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #12     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7118:14)
  #13     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #14     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #15     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #16     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #17     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #18     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #19     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #20     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #21     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #22     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #23     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #24     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #25     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #26     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #28     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #30     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #31     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #32     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #34     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #35     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #36     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #37     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #38     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #39     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #40     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #41     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #42     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #43     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #44     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #45     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #46     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #47     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #48     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #49     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #50     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #51     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #52     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #53     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #54     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #55     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #56     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #57     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #58     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #59     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #60     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #62     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #63     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #64     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #65     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #66     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #67     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #68     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #69     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #70     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #71     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #72     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #73     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #74     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #75     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #76     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #77     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #78     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #79     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #80     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #81     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #82     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #83     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #84     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #85     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #86     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #87     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #88     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #89     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #90     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #91     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #92     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #93     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #94     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #95     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #96     Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #97     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #98     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #99     Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #100    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #101    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #102    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #103    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #104    Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #105    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #106    Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #107    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #108    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #109    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #110    Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #111    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #112    Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #113    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #114    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #115    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #116    Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #117    _RawViewElement._updateChild (package:flutter/src/widgets/view.dart:481:16)
  #118    _RawViewElement.mount (package:flutter/src/widgets/view.dart:504:5)
  #119    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #120    Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #121    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #122    Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #123    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #124    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #125    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #126    Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #127    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
  #128    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
  #129    Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
  #130    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5802:5)
  #131    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5976:11)
  #132    ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
  #133    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
  #134    Element.updateChild (package:flutter/src/widgets/framework.dart:4059:18)
  #135    RootElement._rebuild (package:flutter/src/widgets/binding.dart:1782:16)
  #136    RootElement.mount (package:flutter/src/widgets/binding.dart:1751:5)
  #137    RootWidget.attach.<anonymous closure> (package:flutter/src/widgets/binding.dart:1704:18)
  #138    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3101:19)
  #139    RootWidget.attach (package:flutter/src/widgets/binding.dart:1703:13)
  #140    WidgetsBinding.attachToBuildOwner (package:flutter/src/widgets/binding.dart:1379:27)
  #141    WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:1364:5)
  #142    WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:1350:7)
  #143    Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
  #144    _Timer._runTimers (dart:isolate-patch/timer_impl.dart:423:19)
  #145    _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:454:5)
  #146    _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193:12)
  ] for scope: {widgetInspectorService: objects/2/0}
  package:devtools_app_shared/src/service/eval_on_dart_library.dart 493:11  EvalOnDartLibrary.safeEval
  TimeoutException after 0:01:00.000000: Test timed out after 1 minutes.
  dart:isolate  _RawReceivePort._handleMessage
  TimeoutException after 0:01:00.000000: Test timed out after 1 minutes.
  dart:isolate  _RawReceivePort._handleMessage
Failure 2
❌ /home/runner/work/devtools/devtools/packages/devtools_app/test/shared/eval_integration_test.dart: EvalOnDartLibrary asyncEval throws FutureFailedException when the future is rejected (failed)
  Retry: EvalOnDartLibrary asyncEval throws FutureFailedException when the future is rejected
  TimeoutException after 0:01:00.000000: Test timed out after 1 minutes.
  dart:isolate  _RawReceivePort._handleMessage

elliette avatar Oct 23 '25 16:10 elliette

Good catch. Not sure if it's obvious to others, but it was not obvious to me :D the crash is eval_on_dart_library.dart.

Can we just cast it to a nullable List? Shot in the dark.

srawlins avatar Oct 24 '25 17:10 srawlins