Skip to content

Leak Tracking is flaky #126259

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

Closed
goderbauer opened this issue May 8, 2023 · 4 comments · Fixed by #126367
Closed

Leak Tracking is flaky #126259

goderbauer opened this issue May 8, 2023 · 4 comments · Fixed by #126367
Assignees
Labels
a: leak tracking Issues and PRs related to memory leaks detected by leak_tracker c: flake Tests that sometimes, but not always, incorrectly pass d: devtools DevTools related - suite of performance and debugging tools framework flutter/packages/flutter repository. See also f: labels. P0 Critical issues such as a build break or regression

Comments

@goderbauer
Copy link
Member

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

@goderbauer goderbauer added framework flutter/packages/flutter repository. See also f: labels. d: devtools DevTools related - suite of performance and debugging tools P1 c: flake Tests that sometimes, but not always, incorrectly pass labels May 8, 2023
@polina-c
Copy link
Contributor

polina-c commented May 8, 2023

Thank you. It seems it is caused by duplicates of identityHashCode. Started investigation.

@justinmc
Copy link
Contributor

justinmc commented May 11, 2023

@github-actions
Copy link

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.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 30, 2023
@flutter-triage-bot flutter-triage-bot bot added P0 Critical issues such as a build break or regression and removed P1 labels Jun 28, 2023
@polina-c polina-c added the a: leak tracking Issues and PRs related to memory leaks detected by leak_tracker label Sep 21, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: leak tracking Issues and PRs related to memory leaks detected by leak_tracker c: flake Tests that sometimes, but not always, incorrectly pass d: devtools DevTools related - suite of performance and debugging tools framework flutter/packages/flutter repository. See also f: labels. P0 Critical issues such as a build break or regression
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants