Skip to content

Leak Tracking is flaky #126259

@goderbauer

Description

@goderbauer

I've seen the failure given below in a couple of places locally and on CI. It doesn't reproduce on re-runs, though. It appears to be a flake, which we need to fix.

03:58 +5097 ~2: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart: ListView of license entries is primary (variant: TargetPlatform.linux)                                           
══╡ EXCEPTION CAUGHT BY FOUNDATION LIBRARY ╞════════════════════════════════════════════════════════
The following ArgumentError was thrown MemoryAllocations while dispatching notifications for
SingleChildRenderObjectElement:
Invalid argument (object): Cannot be a string, number, boolean, record, null, Pointer, Struct or
Union: 704053939

When the exception was thrown, this was the stack:
#0      checkValidWeakTarget (dart:_internal-patch/internal_patch.dart:220:5)
#1      Expando.[] (dart:core-patch/expando_patch.dart:31:5)
#2      FinalizerBase.detach (dart:_internal-patch/internal_patch.dart:335:32)
#3      ObjectTracker._checkForDuplicate (package:leak_tracker/src/leak_tracking/_object_tracker.dart:219:16)
#4      ObjectTracker.startTracking (package:leak_tracker/src/leak_tracking/_object_tracker.dart:51:9)
#5      dispatchObjectEvent (package:leak_tracker/src/leak_tracking/_dispatcher.dart:40:19)
#6      dispatchObjectEvent.<anonymous closure> (package:leak_tracker/src/leak_tracking/leak_tracker.dart:91:16)
#7      dispatchObjectEvent (package:leak_tracker/src/leak_tracking/leak_tracker.dart:94:4)
#8      _withFlutterLeakTracking.flutterEventToLeakTracker (file:///b/s/w/ir/x/w/flutter/packages/flutter/test/foundation/leak_tracking.dart:109:12)
#9      MemoryAllocations.dispatchObjectEvent (package:flutter/src/foundation/memory_allocations.dart:238:23)
#10     MemoryAllocations.dispatchObjectCreated (package:flutter/src/foundation/memory_allocations.dart:272:5)
#11     new Element (package:flutter/src/widgets/framework.dart:3267:34)
#12     new RenderObjectElement (package:flutter/src/widgets/framework.dart)
#13     new SingleChildRenderObjectElement (package:flutter/src/widgets/framework.dart)
#14     SingleChildRenderObjectWidget.createElement (package:flutter/src/widgets/framework.dart:1837:53)
...     Normal element mounting (81 frames)
#95     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16)
#96     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36)
#97     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6582:32)
...     Normal element mounting (349 frames)
#446    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16)
#447    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36)
#448    Element.updateChild (package:flutter/src/widgets/framework.dart:3708:18)
#449    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:6153:32)
#450    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6595:17)
#451    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#452    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#453    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#454    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#455    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#456    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#457    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#458    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#459    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#460    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#461    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#462    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#463    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#464    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#465    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#466    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#467    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#468    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#469    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#470    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#471    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#472    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#473    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#474    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#475    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#476    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#477    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#478    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#479    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#480    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#481    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#482    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#483    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#484    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#485    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#486    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#487    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#488    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#489    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#490    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#491    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#492    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#493    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#494    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#495    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#496    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#497    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2780:19)
#498    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1394:19)
#499    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)
#500    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1290:15)
#501    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1220:9)
#502    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding.dart:1244:9)
#505    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:68:41)
#506    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:1230:27)
#507    WidgetTester.pumpAndSettle.<anonymous closure> (package:flutter_test/src/widget_tester.dart:702:23)
#510    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:68:41)
#511    WidgetTester.pumpAndSettle (package:flutter_test/src/widget_tester.dart:695:27)
#512    main.<anonymous closure> (file:///b/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart:954:18)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

The SingleChildRenderObjectElement sending notification was:
  Align
════════════════════════════════════════════════════════════════════════════════════════════════════

03:58 +5097 ~2 -1: /b/s/w/ir/x/w/flutter/packages/flutter/test/material/about_test.dart: ListView of license entries is primary (variant: TargetPlatform.linux) [E]                                    
  Test failed. See exception logs above.
  The test description was: ListView of license entries is primary (variant: TargetPlatform.linux)

Source if the stack trace: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8781676622559016513/+/u/run_test.dart_for_framework_tests_shard_and_subshard_libraries/test_stdout

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressiona: devtoolsDevTools related - suite of performance and debugging toolsa: leak trackingIssues and PRs related to memory leaks detected by leak_trackerc: flakeTests that sometimes, but not always, incorrectly passframeworkflutter/packages/flutter repository. See also f: labels.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions