flutter
flutter copied to clipboard
Platform channel memory leak on macOS embedder
Steps to reproduce
We are using the binary messenger directly with our own codec, not that that should make a difference. I will dig into this some more, but it looks like the memory allocated by SendPlatformMessage()
which is owned by a MallocMapping()
is not freed.
Expected results
No leaked memory.
Actual results
Leaked memory.
Code sample
This is a report from the leaks
tool.
leaks Report Version: 4.0, multi-line stacks
Process 32650: 230607 nodes malloced for 42296 KB
Process 32650: 18 leaks for 944 total leaked bytes.
STACK OF 4 INSTANCES OF 'ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&)>':
26 dyld 0x19cce60e0 start + 2360
25 InfernoUI.debug.dylib 0x1031cce18 __debug_main_executable_dylib_entry_point + 28 AppDelegate.swift:14
24 InfernoUI.debug.dylib 0x1031ccd64 static AppDelegate.$main() + 44 /<compiler-generated>:0
23 InfernoUI.debug.dylib 0x1031ccd9c static NSApplicationDelegate.main() + 40 /<compiler-generated>:0
22 com.apple.AppKit 0x1a09762e0 NSApplicationMain + 880
21 com.apple.AppKit 0x1a099f09c -[NSApplication run] + 476
20 com.apple.AppKit 0x1a11a1808 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
19 com.apple.AppKit 0x1a09abd68 _DPSNextEvent + 660
18 com.apple.HIToolbox 0x1a78efd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
17 com.apple.HIToolbox 0x1a78effd8 ReceiveNextEventCommon + 648
16 com.apple.HIToolbox 0x1a78f019c RunCurrentEventLoopInMode + 292
15 com.apple.CoreFoundation 0x19d14c434 CFRunLoopRunSpecific + 608
14 com.apple.CoreFoundation 0x19d14d258 __CFRunLoopRun + 1996
13 com.apple.CoreFoundation 0x19d18fad4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
12 libdispatch.dylib 0x101611aac _dispatch_main_queue_callback_4CF + 44
11 libdispatch.dylib 0x101611f08 _dispatch_main_queue_drain + 1100
10 libdispatch.dylib 0x1015feba4 _dispatch_client_callout + 20
9 libdispatch.dylib 0x1015fcf2c _dispatch_call_block_and_release + 32
8 io.flutter.flutter-macos 0x107984ff4 __60-[FlutterEngine postMainThreadTask:targetTimeInNanoseconds:]_block_invoke + 64
7 io.flutter.flutter-macos 0x107984e40 -[FlutterEngine runTaskOnEmbedder:] + 56
6 io.flutter.flutter-macos 0x1081f88ec FlutterEngineRunTask + 36
5 io.flutter.flutter-macos 0x10820ff04 flutter::EmbedderTaskRunner::PostTask(unsigned long long) + 652
4 io.flutter.flutter-macos 0x108213400 std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>>, void ()>::operator()() + 80
3 io.flutter.flutter-macos 0x1082128e8 flutter::PlatformViewEmbedder::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>) + 76
2 io.flutter.flutter-macos 0x108200b1c std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) + 56
1 io.flutter.flutter-macos 0x1079d7f58 operator new(unsigned long) + 48
0 libsystem_malloc.dylib 0x19cea8a68 _malloc_zone_malloc_instrumented_or_legacy + 148
====
13 (688 bytes) << TOTAL >>
----
4 (224 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b825260> [16]
3 (208 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x12875b070> [80] length: 18 "oca/metering_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x1287dc330> [80]
1 (48 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x1287d3f20> [48] length: 7 has-length-byte: " listen"
----
4 (224 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b9e8330> [16]
3 (208 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x1287ad2e0> [80] length: 18 "oca/metering_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x1287ad430> [80]
1 (48 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x1287ad590> [48] length: 7 has-length-byte: " listen"
----
4 (224 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b9f28a0> [16]
3 (208 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x1287ad6f0> [80] length: 18 "oca/metering_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x1287ad290> [80]
1 (48 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x1287ad600> [48] length: 7 has-length-byte: " listen"
----
1 (16 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b8d3190> [16]
STACK OF 1 INSTANCE OF 'ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&)>':
26 dyld 0x19cce60e0 start + 2360
25 InfernoUI.debug.dylib 0x1031cce18 __debug_main_executable_dylib_entry_point + 28 AppDelegate.swift:14
24 InfernoUI.debug.dylib 0x1031ccd64 static AppDelegate.$main() + 44 /<compiler-generated>:0
23 InfernoUI.debug.dylib 0x1031ccd9c static NSApplicationDelegate.main() + 40 /<compiler-generated>:0
22 com.apple.AppKit 0x1a09762e0 NSApplicationMain + 880
21 com.apple.AppKit 0x1a099f09c -[NSApplication run] + 476
20 com.apple.AppKit 0x1a11a1808 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
19 com.apple.AppKit 0x1a09abd68 _DPSNextEvent + 660
18 com.apple.HIToolbox 0x1a78efd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
17 com.apple.HIToolbox 0x1a78effd8 ReceiveNextEventCommon + 648
16 com.apple.HIToolbox 0x1a78f019c RunCurrentEventLoopInMode + 292
15 com.apple.CoreFoundation 0x19d14c434 CFRunLoopRunSpecific + 608
14 com.apple.CoreFoundation 0x19d14d258 __CFRunLoopRun + 1996
13 com.apple.CoreFoundation 0x19d18fad4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
12 libdispatch.dylib 0x101611aac _dispatch_main_queue_callback_4CF + 44
11 libdispatch.dylib 0x101611f08 _dispatch_main_queue_drain + 1100
10 libdispatch.dylib 0x1015feba4 _dispatch_client_callout + 20
9 libdispatch.dylib 0x1015fcf2c _dispatch_call_block_and_release + 32
8 io.flutter.flutter-macos 0x107984ff4 __60-[FlutterEngine postMainThreadTask:targetTimeInNanoseconds:]_block_invoke + 64
7 io.flutter.flutter-macos 0x107984e40 -[FlutterEngine runTaskOnEmbedder:] + 56
6 io.flutter.flutter-macos 0x1081f88ec FlutterEngineRunTask + 36
5 io.flutter.flutter-macos 0x10820ff04 flutter::EmbedderTaskRunner::PostTask(unsigned long long) + 652
4 io.flutter.flutter-macos 0x108213400 std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>>, void ()>::operator()() + 80
3 io.flutter.flutter-macos 0x1082128e8 flutter::PlatformViewEmbedder::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>) + 76
2 io.flutter.flutter-macos 0x108200b1c std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) + 56
1 io.flutter.flutter-macos 0x1079d7f58 operator new(unsigned long) + 48
0 libsystem_malloc.dylib 0x19cea8a68 _malloc_zone_malloc_instrumented_or_legacy + 148
====
4 (208 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x15a9e8560> [16]
3 (192 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x15aab6910> [80] length: 18 "oca/property_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x15aa65850> [80]
1 (32 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x15aa658a0> [32]
STACK OF 1 INSTANCE OF 'ROOT LEAK: <malloc in dart::VirtualMemory::AllocateAligned(long, long, bool, bool, char const*)>':
52 dyld 0x19cce60e0 start + 2360
51 InfernoUI.debug.dylib 0x1031cce18 __debug_main_executable_dylib_entry_point + 28 AppDelegate.swift:14
50 InfernoUI.debug.dylib 0x1031ccd64 static AppDelegate.$main() + 44 /<compiler-generated>:0
49 InfernoUI.debug.dylib 0x1031ccd9c static NSApplicationDelegate.main() + 40 /<compiler-generated>:0
48 com.apple.AppKit 0x1a09762e0 NSApplicationMain + 880
47 com.apple.AppKit 0x1a099f09c -[NSApplication run] + 476
46 com.apple.AppKit 0x1a11a1808 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
45 com.apple.AppKit 0x1a09abd68 _DPSNextEvent + 660
44 com.apple.HIToolbox 0x1a78efd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
43 com.apple.HIToolbox 0x1a78effd8 ReceiveNextEventCommon + 648
42 com.apple.HIToolbox 0x1a78f019c RunCurrentEventLoopInMode + 292
41 com.apple.CoreFoundation 0x19d14c434 CFRunLoopRunSpecific + 608
40 com.apple.CoreFoundation 0x19d14d258 __CFRunLoopRun + 1996
39 com.apple.CoreFoundation 0x19d18fad4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
38 libdispatch.dylib 0x101611aac _dispatch_main_queue_callback_4CF + 44
37 libdispatch.dylib 0x101611dc0 _dispatch_main_queue_drain + 772
36 libswift_Concurrency.dylib 0x2651dc470 swift_job_runImpl(swift::Job*, swift::ExecutorRef) + 72
35 libswift_Concurrency.dylib 0x2651db2e0 swift::runJobInEstablishedExecutorContext(swift::Job*) + 436
34 InfernoUI.debug.dylib 0x1031bd430 closure #1 in MainFlutterWindow.awakeFromNib() + 392 MainFlutterWindow.swift:45
33 com.apple.AppKit 0x1a0b7cfd4 -[NSWindow setContentViewController:] + 132
32 com.apple.AppKit 0x1a09ee8a4 NSPerformVisuallyAtomicChange + 108
31 com.apple.AppKit 0x1a0b7d1b4 -[NSWindow _contentViewControllerChanged] + 364
30 com.apple.AppKit 0x1a09e7868 -[NSWindow setContentView:] + 292
29 com.apple.AppKit 0x1a09ccecc -[NSThemeFrame _addKnownSubview:positioned:relativeTo:] + 44
28 com.apple.AppKit 0x1a09ccf18 -[NSThemeFrame addSubview:positioned:relativeTo:] + 52
27 com.apple.AppKit 0x1a09cd110 -[NSView addSubview:positioned:relativeTo:] + 372
26 com.apple.AppKit 0x1a09cd6f0 -[NSThemeFrame addSubview:] + 456
25 com.apple.AppKit 0x1a09cd73c -[NSFrameView addSubview:] + 52
24 com.apple.AppKit 0x1a09c7c64 -[NSView addSubview:] + 212
23 com.apple.AppKit 0x1a09bffb0 -[NSView _setWindow:] + 320
22 com.apple.AppKit 0x1a0aa96fc -[NSViewController _sendViewWillAppear] + 32
21 io.flutter.flutter-macos 0x1079a2888 -[FlutterViewController viewWillAppear] + 108
20 io.flutter.flutter-macos 0x10797eac0 -[FlutterEngine runWithEntrypoint:] + 1916
19 io.flutter.flutter-macos 0x1081f48c8 FlutterEngineRunInitialized + 120
18 io.flutter.flutter-macos 0x108203abc flutter::EmbedderEngine::LaunchShell() + 104
17 io.flutter.flutter-macos 0x108102a80 flutter::Shell::Create(flutter::PlatformData const&, flutter::TaskRunners const&, flutter::Settings, std::_fl::function<std::_fl::unique_ptr<flutter::PlatformView, std::_fl::default_delete<flutter::PlatformView>> (flutter::Shell&)> const&, std::_fl::function<std::_fl::unique_ptr<flutter::Rasterizer, std::_fl::default_delete<flutter::Rasterizer>> (flutter::Shell&)> const&, bool) + 216
16 io.flutter.flutter-macos 0x10810281c flutter::Shell::InferVmInitDataFromSettings(flutter::Settings&) + 120
15 io.flutter.flutter-macos 0x1081ccc70 flutter::DartVMRef::Create(flutter::Settings const&, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>) + 456
14 io.flutter.flutter-macos 0x1081ca118 flutter::DartVM::Create(flutter::Settings const&, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>, std::_fl::shared_ptr<flutter::IsolateNameServer>) + 196
13 io.flutter.flutter-macos 0x1081cacc4 flutter::DartVM::DartVM(std::_fl::shared_ptr<flutter::DartVMData const> const&, std::_fl::shared_ptr<flutter::IsolateNameServer>) + 2736
12 io.flutter.flutter-macos 0x1081cc0f4 DartVMInitializer::Initialize(Dart_InitializeParams*, bool, bool) + 52
11 io.flutter.flutter-macos 0x108267090 dart::Dart::Init(Dart_InitializeParams const*) + 64
10 io.flutter.flutter-macos 0x108266ce0 dart::Dart::DartInit(Dart_InitializeParams const*) + 804
9 io.flutter.flutter-macos 0x10828bc28 dart::IsolateGroup::CreateHeap(bool, bool) + 96
8 io.flutter.flutter-macos 0x1084208f0 dart::Heap::Init(dart::IsolateGroup*, bool, long, long) + 80
7 io.flutter.flutter-macos 0x10841dd0c dart::Heap::Heap(dart::IsolateGroup*, bool, long, long) + 92
6 io.flutter.flutter-macos 0x10842c764 dart::PageSpace::PageSpace(dart::Heap*, long) + 604
5 io.flutter.flutter-macos 0x10842d2f4 dart::PageSpace::TryAllocateInFreshPage(long, dart::FreeList*, bool, dart::PageSpace::GrowthPolicy, bool) + 272
4 io.flutter.flutter-macos 0x10842cc04 dart::PageSpace::AllocatePage(bool, bool) + 160
3 io.flutter.flutter-macos 0x10842bea4 dart::Page::Allocate(long, unsigned long) + 100
2 io.flutter.flutter-macos 0x108401a08 dart::VirtualMemory::AllocateAligned(long, long, bool, bool, char const*) + 144
1 io.flutter.flutter-macos 0x1079d7f58 operator new(unsigned long) + 48
0 libsystem_malloc.dylib 0x19cea8a68 _malloc_zone_malloc_instrumented_or_legacy + 148
====
1 (48 bytes) ROOT LEAK: <malloc in dart::VirtualMemory::AllocateAligned(long, long, bool, bool, char const*) 0x149687140> [48]Creating a new issue as https://github.com/PADL/inferno_ui/issues/15 had gone on for too long, and I think we've fixed the issue in AsyncExtensions.
Report 2;
leaks Report Version: 4.0, multi-line stacks
Process 32650: 230607 nodes malloced for 42296 KB
Process 32650: 18 leaks for 944 total leaked bytes.
STACK OF 4 INSTANCES OF 'ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&)>':
26 dyld 0x19cce60e0 start + 2360
25 InfernoUI.debug.dylib 0x1031cce18 __debug_main_executable_dylib_entry_point + 28 AppDelegate.swift:14
24 InfernoUI.debug.dylib 0x1031ccd64 static AppDelegate.$main() + 44 /<compiler-generated>:0
23 InfernoUI.debug.dylib 0x1031ccd9c static NSApplicationDelegate.main() + 40 /<compiler-generated>:0
22 com.apple.AppKit 0x1a09762e0 NSApplicationMain + 880
21 com.apple.AppKit 0x1a099f09c -[NSApplication run] + 476
20 com.apple.AppKit 0x1a11a1808 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
19 com.apple.AppKit 0x1a09abd68 _DPSNextEvent + 660
18 com.apple.HIToolbox 0x1a78efd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
17 com.apple.HIToolbox 0x1a78effd8 ReceiveNextEventCommon + 648
16 com.apple.HIToolbox 0x1a78f019c RunCurrentEventLoopInMode + 292
15 com.apple.CoreFoundation 0x19d14c434 CFRunLoopRunSpecific + 608
14 com.apple.CoreFoundation 0x19d14d258 __CFRunLoopRun + 1996
13 com.apple.CoreFoundation 0x19d18fad4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
12 libdispatch.dylib 0x101611aac _dispatch_main_queue_callback_4CF + 44
11 libdispatch.dylib 0x101611f08 _dispatch_main_queue_drain + 1100
10 libdispatch.dylib 0x1015feba4 _dispatch_client_callout + 20
9 libdispatch.dylib 0x1015fcf2c _dispatch_call_block_and_release + 32
8 io.flutter.flutter-macos 0x107984ff4 __60-[FlutterEngine postMainThreadTask:targetTimeInNanoseconds:]_block_invoke + 64
7 io.flutter.flutter-macos 0x107984e40 -[FlutterEngine runTaskOnEmbedder:] + 56
6 io.flutter.flutter-macos 0x1081f88ec FlutterEngineRunTask + 36
5 io.flutter.flutter-macos 0x10820ff04 flutter::EmbedderTaskRunner::PostTask(unsigned long long) + 652
4 io.flutter.flutter-macos 0x108213400 std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>>, void ()>::operator()() + 80
3 io.flutter.flutter-macos 0x1082128e8 flutter::PlatformViewEmbedder::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>) + 76
2 io.flutter.flutter-macos 0x108200b1c std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) + 56
1 io.flutter.flutter-macos 0x1079d7f58 operator new(unsigned long) + 48
0 libsystem_malloc.dylib 0x19cea8a68 _malloc_zone_malloc_instrumented_or_legacy + 148
====
13 (688 bytes) << TOTAL >>
----
4 (224 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b825260> [16]
3 (208 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x12875b070> [80] length: 18 "oca/metering_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x1287dc330> [80]
1 (48 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x1287d3f20> [48] length: 7 has-length-byte: " listen"
----
4 (224 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b9e8330> [16]
3 (208 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x1287ad2e0> [80] length: 18 "oca/metering_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x1287ad430> [80]
1 (48 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x1287ad590> [48] length: 7 has-length-byte: " listen"
----
4 (224 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b9f28a0> [16]
3 (208 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x1287ad6f0> [80] length: 18 "oca/metering_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x1287ad290> [80]
1 (48 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x1287ad600> [48] length: 7 has-length-byte: " listen"
----
1 (16 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x14b8d3190> [16]
STACK OF 1 INSTANCE OF 'ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&)>':
26 dyld 0x19cce60e0 start + 2360
25 InfernoUI.debug.dylib 0x1031cce18 __debug_main_executable_dylib_entry_point + 28 AppDelegate.swift:14
24 InfernoUI.debug.dylib 0x1031ccd64 static AppDelegate.$main() + 44 /<compiler-generated>:0
23 InfernoUI.debug.dylib 0x1031ccd9c static NSApplicationDelegate.main() + 40 /<compiler-generated>:0
22 com.apple.AppKit 0x1a09762e0 NSApplicationMain + 880
21 com.apple.AppKit 0x1a099f09c -[NSApplication run] + 476
20 com.apple.AppKit 0x1a11a1808 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
19 com.apple.AppKit 0x1a09abd68 _DPSNextEvent + 660
18 com.apple.HIToolbox 0x1a78efd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
17 com.apple.HIToolbox 0x1a78effd8 ReceiveNextEventCommon + 648
16 com.apple.HIToolbox 0x1a78f019c RunCurrentEventLoopInMode + 292
15 com.apple.CoreFoundation 0x19d14c434 CFRunLoopRunSpecific + 608
14 com.apple.CoreFoundation 0x19d14d258 __CFRunLoopRun + 1996
13 com.apple.CoreFoundation 0x19d18fad4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
12 libdispatch.dylib 0x101611aac _dispatch_main_queue_callback_4CF + 44
11 libdispatch.dylib 0x101611f08 _dispatch_main_queue_drain + 1100
10 libdispatch.dylib 0x1015feba4 _dispatch_client_callout + 20
9 libdispatch.dylib 0x1015fcf2c _dispatch_call_block_and_release + 32
8 io.flutter.flutter-macos 0x107984ff4 __60-[FlutterEngine postMainThreadTask:targetTimeInNanoseconds:]_block_invoke + 64
7 io.flutter.flutter-macos 0x107984e40 -[FlutterEngine runTaskOnEmbedder:] + 56
6 io.flutter.flutter-macos 0x1081f88ec FlutterEngineRunTask + 36
5 io.flutter.flutter-macos 0x10820ff04 flutter::EmbedderTaskRunner::PostTask(unsigned long long) + 652
4 io.flutter.flutter-macos 0x108213400 std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)::'lambda'()>>, void ()>::operator()() + 80
3 io.flutter.flutter-macos 0x1082128e8 flutter::PlatformViewEmbedder::HandlePlatformMessage(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>) + 76
2 io.flutter.flutter-macos 0x108200b1c std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) + 56
1 io.flutter.flutter-macos 0x1079d7f58 operator new(unsigned long) + 48
0 libsystem_malloc.dylib 0x19cea8a68 _malloc_zone_malloc_instrumented_or_legacy + 148
====
4 (208 bytes) ROOT LEAK: <malloc in std::_fl::__function::__func<FlutterEngineInitialize::$_34, std::_fl::allocator<FlutterEngineInitialize::$_34>, void (std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>)>::operator()(std::_fl::unique_ptr<flutter::PlatformMessage, std::_fl::default_delete<flutter::PlatformMessage>>&&) 0x15a9e8560> [16]
3 (192 bytes) <malloc in flutter::(anonymous namespace)::HandlePlatformMessage(flutter::UIDartState*, std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, fml::RefPtr<flutter::PlatformMessageResponse> const&) 0x15aab6910> [80] length: 18 "oca/property_event"
1 (80 bytes) <malloc in flutter::PlatformConfigurationNativeApi::SendPlatformMessage(std::_fl::basic_string<char, std::_fl::char_traits<char>, std::_fl::allocator<char>> const&, _Dart_Handle*, _Dart_Handle*) 0x15aa65850> [80]
1 (32 bytes) <malloc in fml::MallocMapping::Copy(void const*, unsigned long) 0x15aa658a0> [32]
STACK OF 1 INSTANCE OF 'ROOT LEAK: <malloc in dart::VirtualMemory::AllocateAligned(long, long, bool, bool, char const*)>':
52 dyld 0x19cce60e0 start + 2360
51 InfernoUI.debug.dylib 0x1031cce18 __debug_main_executable_dylib_entry_point + 28 AppDelegate.swift:14
50 InfernoUI.debug.dylib 0x1031ccd64 static AppDelegate.$main() + 44 /<compiler-generated>:0
49 InfernoUI.debug.dylib 0x1031ccd9c static NSApplicationDelegate.main() + 40 /<compiler-generated>:0
48 com.apple.AppKit 0x1a09762e0 NSApplicationMain + 880
47 com.apple.AppKit 0x1a099f09c -[NSApplication run] + 476
46 com.apple.AppKit 0x1a11a1808 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
45 com.apple.AppKit 0x1a09abd68 _DPSNextEvent + 660
44 com.apple.HIToolbox 0x1a78efd30 _BlockUntilNextEventMatchingListInModeWithFilter + 76
43 com.apple.HIToolbox 0x1a78effd8 ReceiveNextEventCommon + 648
42 com.apple.HIToolbox 0x1a78f019c RunCurrentEventLoopInMode + 292
41 com.apple.CoreFoundation 0x19d14c434 CFRunLoopRunSpecific + 608
40 com.apple.CoreFoundation 0x19d14d258 __CFRunLoopRun + 1996
39 com.apple.CoreFoundation 0x19d18fad4 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
38 libdispatch.dylib 0x101611aac _dispatch_main_queue_callback_4CF + 44
37 libdispatch.dylib 0x101611dc0 _dispatch_main_queue_drain + 772
36 libswift_Concurrency.dylib 0x2651dc470 swift_job_runImpl(swift::Job*, swift::ExecutorRef) + 72
35 libswift_Concurrency.dylib 0x2651db2e0 swift::runJobInEstablishedExecutorContext(swift::Job*) + 436
34 InfernoUI.debug.dylib 0x1031bd430 closure #1 in MainFlutterWindow.awakeFromNib() + 392 MainFlutterWindow.swift:45
33 com.apple.AppKit 0x1a0b7cfd4 -[NSWindow setContentViewController:] + 132
32 com.apple.AppKit 0x1a09ee8a4 NSPerformVisuallyAtomicChange + 108
31 com.apple.AppKit 0x1a0b7d1b4 -[NSWindow _contentViewControllerChanged] + 364
30 com.apple.AppKit 0x1a09e7868 -[NSWindow setContentView:] + 292
29 com.apple.AppKit 0x1a09ccecc -[NSThemeFrame _addKnownSubview:positioned:relativeTo:] + 44
28 com.apple.AppKit 0x1a09ccf18 -[NSThemeFrame addSubview:positioned:relativeTo:] + 52
27 com.apple.AppKit 0x1a09cd110 -[NSView addSubview:positioned:relativeTo:] + 372
26 com.apple.AppKit 0x1a09cd6f0 -[NSThemeFrame addSubview:] + 456
25 com.apple.AppKit 0x1a09cd73c -[NSFrameView addSubview:] + 52
24 com.apple.AppKit 0x1a09c7c64 -[NSView addSubview:] + 212
23 com.apple.AppKit 0x1a09bffb0 -[NSView _setWindow:] + 320
22 com.apple.AppKit 0x1a0aa96fc -[NSViewController _sendViewWillAppear] + 32
21 io.flutter.flutter-macos 0x1079a2888 -[FlutterViewController viewWillAppear] + 108
20 io.flutter.flutter-macos 0x10797eac0 -[FlutterEngine runWithEntrypoint:] + 1916
19 io.flutter.flutter-macos 0x1081f48c8 FlutterEngineRunInitialized + 120
18 io.flutter.flutter-macos 0x108203abc flutter::EmbedderEngine::LaunchShell() + 104
17 io.flutter.flutter-macos 0x108102a80 flutter::Shell::Create(flutter::PlatformData const&, flutter::TaskRunners const&, flutter::Settings, std::_fl::function<std::_fl::unique_ptr<flutter::PlatformView, std::_fl::default_delete<flutter::PlatformView>> (flutter::Shell&)> const&, std::_fl::function<std::_fl::unique_ptr<flutter::Rasterizer, std::_fl::default_delete<flutter::Rasterizer>> (flutter::Shell&)> const&, bool) + 216
16 io.flutter.flutter-macos 0x10810281c flutter::Shell::InferVmInitDataFromSettings(flutter::Settings&) + 120
15 io.flutter.flutter-macos 0x1081ccc70 flutter::DartVMRef::Create(flutter::Settings const&, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>) + 456
14 io.flutter.flutter-macos 0x1081ca118 flutter::DartVM::Create(flutter::Settings const&, fml::RefPtr<flutter::DartSnapshot const>, fml::RefPtr<flutter::DartSnapshot const>, std::_fl::shared_ptr<flutter::IsolateNameServer>) + 196
13 io.flutter.flutter-macos 0x1081cacc4 flutter::DartVM::DartVM(std::_fl::shared_ptr<flutter::DartVMData const> const&, std::_fl::shared_ptr<flutter::IsolateNameServer>) + 2736
12 io.flutter.flutter-macos 0x1081cc0f4 DartVMInitializer::Initialize(Dart_InitializeParams*, bool, bool) + 52
11 io.flutter.flutter-macos 0x108267090 dart::Dart::Init(Dart_InitializeParams const*) + 64
10 io.flutter.flutter-macos 0x108266ce0 dart::Dart::DartInit(Dart_InitializeParams const*) + 804
9 io.flutter.flutter-macos 0x10828bc28 dart::IsolateGroup::CreateHeap(bool, bool) + 96
8 io.flutter.flutter-macos 0x1084208f0 dart::Heap::Init(dart::IsolateGroup*, bool, long, long) + 80
7 io.flutter.flutter-macos 0x10841dd0c dart::Heap::Heap(dart::IsolateGroup*, bool, long, long) + 92
6 io.flutter.flutter-macos 0x10842c764 dart::PageSpace::PageSpace(dart::Heap*, long) + 604
5 io.flutter.flutter-macos 0x10842d2f4 dart::PageSpace::TryAllocateInFreshPage(long, dart::FreeList*, bool, dart::PageSpace::GrowthPolicy, bool) + 272
4 io.flutter.flutter-macos 0x10842cc04 dart::PageSpace::AllocatePage(bool, bool) + 160
3 io.flutter.flutter-macos 0x10842bea4 dart::Page::Allocate(long, unsigned long) + 100
2 io.flutter.flutter-macos 0x108401a08 dart::VirtualMemory::AllocateAligned(long, long, bool, bool, char const*) + 144
1 io.flutter.flutter-macos 0x1079d7f58 operator new(unsigned long) + 48
0 libsystem_malloc.dylib 0x19cea8a68 _malloc_zone_malloc_instrumented_or_legacy + 148
====
1 (48 bytes) ROOT LEAK: <malloc in dart::VirtualMemory::AllocateAligned(long, long, bool, bool, char const*) 0x149687140> [48]
Screenshots or Video
No response
Logs
No response
Flutter Doctor output
% flutter doctor -v
[✓] Flutter (Channel stable, 3.24.5, on macOS 14.5 23F79 darwin-arm64, locale en-AU)
• Flutter version 3.24.5 on channel stable at /opt/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision dec2ee5c1f (9 days ago), 2024-11-13 11:13:06 -0800
• Engine revision a18df97ca5
• Dart version 3.5.4
• DevTools version 2.37.3
[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
• Android SDK at /Users/lukeh/Library/Android/sdk
• Platform android-35, build-tools 35.0.0
• ANDROID_HOME = /Users/lukeh/Library/Android/sdk
• Java binary at: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin/java
• Java version Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
• All Android licenses accepted.
[!] Xcode - develop for iOS and macOS (Xcode 16.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 16B40
! CocoaPods 1.11.3 out of date (1.13.0 is recommended).
CocoaPods is a package manager for iOS or macOS platform code.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/to/platform-plugins
To update CocoaPods, see https://guides.cocoapods.org/using/getting-started.html#updating-cocoapods
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2024.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11)
[✓] VS Code (version 1.95.3)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.100.0
[✓] Connected device (4 available)
• Luke Howard’s iPhone (mobile) • 00008110-001205943C3B801E • ios • iOS 18.0.1 22A3370
• macOS (desktop) • macos • darwin-arm64 • macOS 14.5 23F79 darwin-arm64
• Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin • macOS 14.5 23F79 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 131.0.6778.86
[✓] Network resources
• All expected network resources are available.
! Doctor found issues in 1 category.