Skip to content

[impeller] Application crash: SIGSEGV (Segmentation fault) #168210

Closed

Description

@a-h-mzd

Steps to reproduce

Expected results

Application must not crash

Actual results

Application crashes

Code sample

Screenshots or Video

No response

Logs

gaaclarke edit: See stacktrace in #168210 (comment). The stack trace originally provided below is not symbolicated correctly.

Logs
0 Flutter impeller::Canvas::GetLocalCoverageLimit() const (display_list/canvas.cc:955) 
1 Flutter std::_fl::__optional_storage_base<impeller::TRect<float>, false>::has_value[abi:v15000]() const (include/optional:344) 
2 Flutter impeller::DlDispatcherBase::drawDisplayList(sk_sp<flutter::DisplayList>, float) (display_list/dl_dispatcher.cc:848) 
3 Flutter sk_sp<flutter::DisplayList>::~sk_sp() (core/SkRefCnt.h:256) 
4 Flutter sk_sp<flutter::DisplayList>::~sk_sp() (core/SkRefCnt.h:255) 
5 Flutter flutter::DrawDisplayListOp::dispatch(flutter::DlOpReceiver&) const (display_list/dl_op_records.h:986) 
6 Flutter flutter::DisplayList::Dispatch(flutter::DlOpReceiver&) const (display_list/display_list.cc:183) 
7 Flutter flutter::DisplayList::Dispatch(flutter::DlOpReceiver&, impeller::TRect<float> const&) const (display_list/display_list.cc:199) 
8 Flutter impeller::CanvasDlDispatcher::FinishRecording() (display_list/dl_dispatcher.h:286) 
9 Flutter impeller::RenderToTarget(impeller::ContentContext&, impeller::RenderTarget, sk_sp<flutter::DisplayList> const&, SkIRect, bool, bool) (display_list/dl_dispatcher.cc:1336) 
10 Flutter impeller::RenderTarget::~RenderTarget() (renderer/render_target.cc:21) 
11 Flutter flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0::operator()(flutter::SurfaceFrame&, flutter::DlCanvas*) (gpu/gpu_surface_metal_impeller.mm:178) 
12 Flutter fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>::operator()<flutter::SurfaceFrame&, flutter::DlCanvas*>(flutter::SurfaceFrame&, flutter::DlCanvas*) const (fml/make_copyable.h:24) 
13 Flutter std::_fl::__invoke[abi:v15000]<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>&, fml::internal::CopyableLambda::SurfaceFrame&, fml::internal::CopyableLambda::DlCanvas*>(fml::internal::CopyableLambda::DlCanvas*&&, fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>&) (__functional/invoke.h:403) 
14 Flutter std::_fl::__invoke_void_return_wrapper<bool, false>::__call<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>&, flutter::SurfaceFrame&, flutter::DlCanvas*>(fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>&, flutter::SurfaceFrame&, flutter::DlCanvas*) (__functional/invoke.h:479) 
15 Flutter std::_fl::__function::__alloc_func<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0> >, bool (flutter::SurfaceFrame&, flutter::DlCanvas*)>::operator()[abi:v15000](flutter::SurfaceFrame&, flutter::DlCanvas*&&) (__functional/function.h:185) 
16 Flutter std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0> >, bool (flutter::SurfaceFrame&, flutter::DlCanvas*)>::operator()(flutter::SurfaceFrame&, flutter::DlCanvas*&&) (__functional/function.h:359) 
17 Flutter flutter::SurfaceFrame::Encode() (flow/surface_frame.cc:58) 
18 Flutter flutter::SurfaceFrame::Submit() (flow/surface_frame.cc:65) 
19 Flutter std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_delete<flutter::SurfaceFrame> >::reset[abi:v15000](flutter::SurfaceFrame*) (__memory/unique_ptr.h:302) 
20 Flutter std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_delete<flutter::SurfaceFrame> >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
21 Flutter std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_delete<flutter::SurfaceFrame> >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
22 Flutter flutter::IOSExternalViewEmbedder::SubmitFlutterView(long long, GrDirectContext*, std::_fl::shared_ptr<impeller::AiksContext> const&, std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_delete<flutter::SurfaceFrame> >) (ios/ios_external_view_embedder.mm:88) 
23 Flutter std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_delete<flutter::SurfaceFrame> >::reset[abi:v15000](flutter::SurfaceFrame*) (__memory/unique_ptr.h:302) 
24 Flutter std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_delete<flutter::SurfaceFrame> >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
25 Flutter std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_delete<flutter::SurfaceFrame> >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
26 Flutter flutter::Rasterizer::DrawToSurfaceUnsafe(long long, flutter::LayerTree&, float, std::_fl::optional<fml::TimePoint>) (common/rasterizer.cc:791) 
27 Flutter flutter::Rasterizer::DrawToSurfacesUnsafe(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >) (common/rasterizer.cc:658) 
28 Flutter flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)::$_1::operator()() const (common/rasterizer.cc:597) 
29 Flutter std::_fl::__invoke[abi:v15000]<flutter::Rasterizer::DrawToSurfaces(std::_fl::__invoke[abi:v15000]::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<std::_fl::__invoke[abi:v15000]::LayerTreeTask, std::_fl::default_delete<std::_fl::unique_ptr> >, std::_fl::allocator<std::_fl::default_delete<std::_fl::unique_ptr> > >)::$_1&, >(flutter::Rasterizer::DrawToSurfaces(std::_fl::__invoke[abi:v15000]::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<std::_fl::__invoke[abi:v15000]::LayerTreeTask, std::_fl::default_delete<std::_fl::unique_ptr> >, std::_fl::allocator<std::_fl::default_delete<std::_fl::unique_ptr> > >)::$_1&, flutter::Rasterizer::DrawToSurfaces(std::_fl::__invoke[abi:v15000]::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<std::_fl::__invoke[abi:v15000]::LayerTreeTask, std::_fl::default_delete<std::_fl::unique_ptr> >, std::_fl::allocator<std::_fl::default_delete<std::_fl::unique_ptr> > >)::$_1&) (__functional/invoke.h:403) 
30 Flutter std::_fl::__invoke_void_return_wrapper<void, true>::__call<flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)::$_1&>(flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)::$_1&) (__functional/invoke.h:488) 
31 Flutter std::_fl::__function::__alloc_func<flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)::$_1, std::_fl::allocator<flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)::$_1>, void ()>::operator()[abi:v15000]() (__functional/function.h:185) 
32 Flutter std::_fl::__function::__func<flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)::$_1, std::_fl::allocator<flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >)::$_1>, void ()>::operator()() (__functional/function.h:359) 
33 Flutter std::_fl::shared_mutex::unlock_shared[abi:v15000]() (include/shared_mutex:199) 
34 Flutter std::_fl::shared_lock<std::_fl::shared_mutex>::~shared_lock[abi:v15000]() (include/shared_mutex:371) 
35 Flutter std::_fl::shared_lock<std::_fl::shared_mutex>::~shared_lock[abi:v15000]() (include/shared_mutex:369) 
36 Flutter fml::SyncSwitch::Execute(fml::SyncSwitch::Handlers const&) const (synchronization/sync_switch.cc:33) 
37 Flutter std::_fl::__function::__value_func<void ()>::~__value_func[abi:v15000]() (__functional/function.h:470) 
38 Flutter std::_fl::__function::__value_func<void ()>::~__value_func[abi:v15000]() (__functional/function.h:469) 
39 Flutter std::_fl::function<void ()>::~function() (__functional/function.h:1174) 
40 Flutter std::_fl::function<void ()>::~function() (__functional/function.h:1174) 
41 Flutter flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >) (common/rasterizer.cc:589) 
42 Flutter std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >::~vector[abi:v15000]() (include/vector:423) 
43 Flutter flutter::Rasterizer::DoDraw(std::_fl::unique_ptr<flutter::FrameTimingsRecorder, std::_fl::default_delete<flutter::FrameTimingsRecorder> >, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> >, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_delete<flutter::LayerTreeTask> > > >) (common/rasterizer.cc:491) 
44 Flutter flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0::operator()(std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >) const (common/rasterizer.cc:259) 
45 Flutter std::_fl::__invoke[abi:v15000]<flutter::Rasterizer::Draw(std::_fl::shared_ptr<std::_fl::__invoke[abi:v15000]::Pipeline<std::_fl::__invoke[abi:v15000]::FrameItem> > const&)::$_0&, std::_fl::unique_ptr<std::_fl::__invoke[abi:v15000]::Pipeline, std::_fl::default_delete<std::_fl::__invoke[abi:v15000]::Pipeline> > >(std::_fl::unique_ptr<std::_fl::__invoke[abi:v15000]::Pipeline, std::_fl::default_delete<std::_fl::__invoke[abi:v15000]::Pipeline> >&&, flutter::Rasterizer::Draw(std::_fl::shared_ptr<std::_fl::__invoke[abi:v15000]::Pipeline<std::_fl::__invoke[abi:v15000]::FrameItem> > const&)::$_0&) (__functional/invoke.h:403) 
46 Flutter std::_fl::__invoke_void_return_wrapper<void, true>::__call<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0&, std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> > >(flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0&, std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >) (__functional/invoke.h:488) 
47 Flutter std::_fl::__function::__alloc_func<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0, std::_fl::allocator<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0>, void (std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >)>::operator()[abi:v15000](std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >&&) (__functional/function.h:185) 
48 Flutter std::_fl::__function::__func<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0, std::_fl::allocator<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&)::$_0>, void (std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >)>::operator()(std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >&&) (__functional/function.h:359) 
49 Flutter std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
50 Flutter std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
51 Flutter flutter::Pipeline<flutter::FrameItem>::Consume(std::_fl::function<void (std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_delete<flutter::FrameItem> >)> const&) (common/pipeline.h:203) 
52 Flutter flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> > const&) (common/rasterizer.cc:263) 
53 Flutter flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0::operator()() (common/shell.cc:1297) 
54 Flutter fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0>::operator()<>(&&) const (fml/make_copyable.h:24) 
55 Flutter std::_fl::__invoke[abi:v15000]<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<fml::internal::CopyableLambda::Pipeline<fml::internal::CopyableLambda::FrameItem> >)::$_0>&, >(fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<fml::internal::CopyableLambda::Pipeline<fml::internal::CopyableLambda::FrameItem> >)::$_0>&, fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<fml::internal::CopyableLambda::Pipeline<fml::internal::CopyableLambda::FrameItem> >)::$_0>&) (__functional/invoke.h:403) 
56 Flutter std::_fl::__invoke_void_return_wrapper<void, true>::__call<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0>&>(fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0>&) (__functional/invoke.h:488) 
57 Flutter std::_fl::__function::__alloc_func<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0> >, void ()>::operator()[abi:v15000]() (__functional/function.h:185) 
58 Flutter std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipeline<flutter::FrameItem> >)::$_0> >, void ()>::operator()() (__functional/function.h:359) 
59 Flutter fml::MessageLoopImpl::FlushTasks(fml::FlushType) (fml/message_loop_impl.cc:128) 
60 Flutter fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) (darwin/message_loop_darwin.mm:86) 
61 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ 
62 CoreFoundation __CFRunLoopDoTimer 
63 CoreFoundation __CFRunLoopDoTimers 
64 CoreFoundation __CFRunLoopRun 
65 CoreFoundation CFRunLoopRunSpecific 
66 Flutter fml::MessageLoopDarwin::Run() (darwin/message_loop_darwin.mm:52) 
67 Flutter fml::MessageLoopImpl::DoRun() 
68 Flutter fml::MessageLoop::Run() (fml/message_loop.cc:49) 
69 Flutter fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0::operator()() const (fml/thread.cc:154) 
70 Flutter std::_fl::__invoke[abi:v15000]<fml::Thread::Thread(std::_fl::function<void (fml::ThreadConfig const&)> const&, fml::ThreadConfig const)::$_0&, >(fml::Thread::Thread(std::_fl::function<void (fml::ThreadConfig const&)> const&, fml::ThreadConfig const)::$_0&, fml::Thread::Thread(std::_fl::function<void (fml::ThreadConfig const&)> const&, fml::ThreadConfig const)::$_0&) (__functional/invoke.h:403) 
71 Flutter std::_fl::__invoke_void_return_wrapper<void, true>::__call<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0&>(fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0&) (__functional/invoke.h:488) 
72 Flutter std::_fl::__function::__alloc_func<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0, std::_fl::allocator<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0>, void ()>::operator()[abi:v15000]() (__functional/function.h:185) 
73 Flutter std::_fl::__function::__func<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0, std::_fl::allocator<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0>, void ()>::operator()() (__functional/function.h:359) 
74 Flutter std::_fl::__function::__value_func<void ()>::~__value_func[abi:v15000]() (__functional/function.h:470) 
75 Flutter std::_fl::__function::__value_func<void ()>::~__value_func[abi:v15000]() (__functional/function.h:469) 
76 Flutter std::_fl::function<void ()>::~function() (__functional/function.h:1174) 
77 Flutter std::_fl::function<void ()>::~function() (__functional/function.h:1174) 
78 Flutter std::_fl::default_delete<std::_fl::function<void ()> >::operator()[abi:v15000](std::_fl::function<void ()>*) const (__memory/unique_ptr.h:48) 
79 Flutter std::_fl::unique_ptr<std::_fl::function<void ()>, std::_fl::default_delete<std::_fl::function<void ()> > >::reset[abi:v15000](std::_fl::function<void ()>*) (__memory/unique_ptr.h:305) 
80 Flutter std::_fl::unique_ptr<std::_fl::function<void ()>, std::_fl::default_delete<std::_fl::function<void ()> > >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
81 Flutter std::_fl::unique_ptr<std::_fl::function<void ()>, std::_fl::default_delete<std::_fl::function<void ()> > >::~unique_ptr[abi:v15000]() (__memory/unique_ptr.h:259) 
82 Flutter fml::ThreadHandle::ThreadHandle(std::_fl::function<void ()>&&)::$_0::operator()(void*) const (fml/thread.cc:78) 
83 Flutter fml::ThreadHandle::ThreadHandle(std::_fl::function<void ()>&&)::$_0::__invoke(void*) (fml/thread.cc:73) 
84 libsystem_pthread.dylib _pthread_start 
85 libsystem_pthread.dylib thread_start

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.29.3, on macOS 15.4.1 24E263 darwin-arm64, locale en-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.3)
Affected devices
Device Type: iPad
OS: iPadOS 17.7.6

Activity

  1. darshankawar commented on May 5, 2025

    @darshankawar
    Member

    @a-h-mzd
    Is there a way to provide reproducible code sample that shows reported crash ?

  2. added
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on May 5, 2025
  3. a-h-mzd commented on May 5, 2025

    @a-h-mzd
    Author

    @darshankawar unfortunately no. This crash is coming from a user and we only know that the user was trying to enter text into a simple textfield when the crash happened.

  4. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on May 5, 2025
  5. darshankawar commented on May 6, 2025

    @darshankawar
    Member

    Keeping the issue open and labeling based on the crash log, for team's tracking.

  6. added
    c: crashStack traces logged to the console
    platform-iosiOS applications specifically
    engineflutter/engine related. See also e: labels.
    a: productionIssues experienced in live production apps
    needs repro infoAutomated crash report whose cause isn't yet known
    e: impellerImpeller rendering backend issues and features requests
    and removed
    in triagePresently being triaged by the triage team
    on May 6, 2025
  7. jtmcdole commented on May 12, 2025

    @jtmcdole
    Member

    Link to relevant code:

    std::optional<Rect> maybe_coverage_limit =
    Rect::MakeOriginSize(GetGlobalPassPosition(),
    Size(render_passes_.back()
    .inline_pass_context->GetTexture()
    ->GetSize()))
    .Intersection(current_clip_coverage);

    Could be that we ran out of memory. Maybe we can be more defensive here.

    @a-h-mzd - is this 100% reproducible by the customer?

  8. 18 remaining items

  9. gaaclarke commented on Aug 8, 2025

    @gaaclarke
    Member

    @farrerdev you are the only one that has a reproduction. Can you please create a minimal reproduction? If you have a large app, just start ripping out everything that isn't required to reproduce the problem then post it here.

  10. gaaclarke commented on Aug 15, 2025

    @gaaclarke
    Member

    I was able to create a nullptr exception by creating an invalid texture. I'm not sure if that is what's happening here though. The assertion we've added previously catches it. Without reproduction steps it's going to be hard to do anything meaningful about this.

    static std::unique_ptr<Canvas> CreateTestCanvasOfSize(ContentContext& context,
                                                   ISize size) {
      TextureDescriptor onscreen_desc;
      onscreen_desc.size = size;
      onscreen_desc.format =
          context.GetDeviceCapabilities().GetDefaultColorFormat();
      onscreen_desc.usage = TextureUsage::kRenderTarget;
      onscreen_desc.storage_mode = StorageMode::kDevicePrivate;
      onscreen_desc.sample_count = SampleCount::kCount1;
      std::shared_ptr<Texture> onscreen =
          context.GetContext()->GetResourceAllocator()->CreateTexture(
              onscreen_desc);
    
      ColorAttachment color0;
      color0.load_action = LoadAction::kClear;
      color0.texture = onscreen;
    
      RenderTarget render_target;
      render_target.SetColorAttachment(color0, 0);
    
      return std::make_unique<Canvas>(context, render_target, /*is_onscreen=*/false,
                                      /*requires_readback=*/false);
    }
    
    TEST_P(AiksTest, SaveLayerWithHugeBoundsCrashes) {
      ContentContext context(GetContext(), nullptr);
      auto canvas = CreateTestCanvasOfSize(context, {10000, 10000});
      Paint paint;
      canvas->SaveLayer(paint, std::nullopt, nullptr,
                        ContentBoundsPromise::kContainsContents, 1);
    }
  11. gaaclarke commented on Aug 15, 2025

    @gaaclarke
    Member

    @flar we are getting this crash when drawing a display list. It looks like the render pass has an invalid texture when calculating the local coverage. If we return a nullopt from GetLocalCoverageLimit the drawing of the display list will be cancelled. Alternatively we can avoid doing the math on the texture and just return the current_clip_coverage. My concern is that if we do either of those things, it's too late, we are already in a bad state that will fail somewhere else. Something already went wrong before this point and we are in an unrecoverable state. Thoughts?

  12. flar commented on Aug 15, 2025

    @flar
    Contributor

    @flar we are getting this crash when drawing a display list. It looks like the render pass has an invalid texture when calculating the local coverage. If we return a nullopt from GetLocalCoverageLimit the drawing of the display list will be cancelled. Alternatively we can avoid doing the math on the texture and just return the current_clip_coverage. My concern is that if we do either of those things, it's too late, we are already in a bad state that will fail somewhere else. Something already went wrong before this point and we are in an unrecoverable state. Thoughts?

    When I run your test case I get a check error at

    FML_CHECK(back_texture) << "Context is valid:"

    I think in that case when that check fails, we aren't going to do any rendering at all since the destination is invalid - am I reading that correctly? As for the reason - in your test case we fail to have a texture because the size was too large to support?

    I think in the long term we need to have a solution for "destination too large", but that is a long term goal. For now, if we fail to have a texture we should log that and then bail on the rendering as quickly as possible.

    If this is the top level texture for a frame, we should be noting the failed texture allocation up front and logging it as some kind of "this frame is too large to render", but can this happen in the middle of a DL because a particular SaveLayer evaluated to bounds that were too large? If so, we should either limit our rendering failure to just that one SaveLayer (perhaps with a log statement so developers know why part of their app disappeared). If we would realize this when we allocate the texture for the SaveLayer, we should probably either figure out a workaround (render at less resolution or tile the layer?) and/or allocate an abbreviated layer of a size that the GPU can support (both with an appropriate log output). In both of those cases, we will avoid reaching this case where we are trying to figure out the coverage and hitting the "missing texture" check.

  13. gaaclarke commented on Aug 15, 2025

    @gaaclarke
    Member

    As for the reason - in your test case we fail to have a texture because the size was too large to support?

    The test case I added as just speculation. In that case the texture fails because it's too big, but I think there can be different reasons why that might be failing in production causing the description's crash.

  14. amrgetment commented on Aug 25, 2025

    @amrgetment

    I wonder if this is related, it is random and I don't know which part of code produce it so I don't know how to make a sample to reproduce it.

    Device
    Model:iOS Simulator (iPhone)
    Operating System
    Version:17.5.0
    Flutter: 3.35.1

    Crashlytics logs # Crashlytics - Stack trace # Platform: apple # Date: Mon Aug 25 2025 13:39:50 GMT+0300 (Eastern European Summer Time)

    com.apple.main-thread
    0 libsystem_kernel.dylib 0xb70 mach_msg2_trap + 8
    1 libsystem_kernel.dylib 0x11fac mach_msg2_internal + 72
    2 libsystem_kernel.dylib 0x8c28 mach_msg_overwrite + 480
    3 libsystem_kernel.dylib 0xed8 mach_msg + 20
    4 CoreFoundation 0x8d684 __CFRunLoopServiceMachPort + 156
    5 CoreFoundation 0x87d64 __CFRunLoopRun + 1148
    6 CoreFoundation 0x874d4 CFRunLoopRunSpecific + 572
    7 GraphicsServices 0x3ae4 GSEventRunModal + 160
    8 UIKitCore 0xbf1a28 -[UIApplication _run] + 868
    9 UIKitCore 0xbf56b0 UIApplicationMain + 124
    10 UIKitCore 0x946a8 __swift_destroy_boxed_opaque_existential_1Tm + 10048
    11 Runner 0x52c8 main + 120 (AppDelegate.swift:120)
    12 ??? 0x100a59544 (Missing)
    13 ??? 0x100ba2b98 (Missing)

    com.apple.uikit.eventfetch-thread
    0 libsystem_kernel.dylib 0xb70 mach_msg2_trap + 8
    1 libsystem_kernel.dylib 0x11fac mach_msg2_internal + 72
    2 libsystem_kernel.dylib 0x8c28 mach_msg_overwrite + 480
    3 libsystem_kernel.dylib 0xed8 mach_msg + 20
    4 CoreFoundation 0x8d684 __CFRunLoopServiceMachPort + 156
    5 CoreFoundation 0x87d64 __CFRunLoopRun + 1148
    6 CoreFoundation 0x874d4 CFRunLoopRunSpecific + 572
    7 Foundation 0x61f40c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 208
    8 Foundation 0x61f630 -[NSRunLoop(NSRunLoop) runUntilDate:] + 60
    9 UIKitCore 0xc983f8 -[UIEventFetcher threadMain] + 404
    10 Foundation 0x645c64 NSThread__start + 720
    11 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    12 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x2680 __workq_kernreturn + 8
    1 libsystem_pthread.dylib 0x2c18 _pthread_wqthread + 364
    2 libsystem_pthread.dylib 0x198c start_wqthread + 8

    Crashed: io.flutter.1.raster
    0 libsystem_kernel.dylib 0xcaf0 __abort_with_payload + 8
    1 libsystem_kernel.dylib 0x31d2c abort_with_payload_wrapper_internal + 100
    2 libsystem_kernel.dylib 0x31cc8 abort_with_reason + 26
    3 MTLSimDriver 0x78f8 MTLSimulator_encountered_XPC_error(char const*, int) + 266
    4 MTLSimDriver 0x2fbc sendXPCMessageWithReplySync(NSObject<OS_xpc_object>, NSObject<OS_xpc_object>) + 196
    5 MTLSimDriver 0x243c dispatchOperationWihReply(NSObject<OS_xpc_object>, NSObject<OS_dispatch_data>, unsigned long long, void (NSObject<OS_xpc_object>) block_pointer, void (void const, unsigned long) block_pointer) + 156
    6 MTLSimDriver 0x4ad8 -[MTLSimDevice newFence] + 228
    7 Metal 0xee6c0 -[_MTLCommandEncoder initWithCommandBuffer:] + 240
    8 MetalSerializer 0x170c4 -[MTLSerializerCommandEncoder initWithCommandBuffer:serializer:] + 56
    9 MetalSerializer 0x10d4c -[MTLSerializerRenderCommandEncoder initWithCommandBuffer:descriptor:serializer:] + 64
    10 MTLSimDriver 0xa994 -[MTLSimCommandBuffer renderCommandEncoderWithDescriptor:] + 76
    11 Flutter 0x4591a0 impeller::RenderPassMTL::RenderPassMTL(std::_fl::shared_ptr<impeller::Context const>, impeller::RenderTarget const&, id) + 896
    12 Flutter 0x44bccc impeller::CommandBufferMTL::OnCreateRenderPass(impeller::RenderTarget) + 128
    13 Flutter 0x288694 impeller::CommandBuffer::CreateRenderPass(impeller::RenderTarget const&) + 352
    14 Flutter 0x440c38 impeller::InlinePassContext::GetRenderPass() + 1004
    15 Flutter 0x3d1144 impeller::Canvas::AddRenderEntityToCurrentPass(impeller::Entity&, bool) + 1684
    16 Flutter 0x3d628c impeller::Canvas::DrawTextFrame(std::_fl::shared_ptrimpeller::TextFrame const&, impeller::TPoint, impeller::Paint const&) + 876
    17 Flutter 0xfd2d0 flutter::DisplayList::Dispatch(flutter::DlOpReceiver&, impeller::TRect const&) const + 112
    18 Flutter 0x3dbeec impeller::DlDispatcherBase::drawDisplayList(sk_spflutter::DisplayList, float) + 552
    19 Flutter 0xfd8f0 flutter::DrawDisplayListOp::dispatch(flutter::DlOpReceiver&) const + 64
    20 Flutter 0xfd2d0 flutter::DisplayList::Dispatch(flutter::DlOpReceiver&, impeller::TRect const&) const + 112
    21 Flutter 0x3dd904 impeller::RenderToTarget(impeller::ContentContext&, impeller::RenderTarget, sk_spflutter::DisplayList const&, impeller::TRect, bool, bool) + 280
    22 Flutter 0x50ca2c std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::GPUSurfaceMetalImpeller::AcquireFrameFromCAMetalLayer(SkISize const&)::$_0>>, bool (flutter::SurfaceFrame&, flutter::DlCanvas*)>::operator()(flutter::SurfaceFrame&, flutter::DlCanvas*&&) + 948
    23 Flutter 0x327880 flutter::SurfaceFrame::Encode() + 100
    24 Flutter 0x3278fc flutter::SurfaceFrame::Submit() + 76
    25 Flutter 0x223f0 -[FlutterPlatformViewsController submitFrame:withIosContext:] + 640
    26 Flutter 0x5eda0 flutter::IOSExternalViewEmbedder::SubmitFlutterView(long long, GrDirectContext*, std::_fl::shared_ptrimpeller::AiksContext const&, std::_fl::unique_ptr<flutter::SurfaceFrame, std::_fl::default_deleteflutter::SurfaceFrame>) + 164
    27 Flutter 0x46b3f4 flutter::Rasterizer::DrawToSurfaceUnsafe(long long, flutter::LayerTree&, float, std::_fl::optionalfml::TimePoint) + 964
    28 Flutter 0x46ae60 flutter::Rasterizer::DrawToSurfacesUnsafe(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>>>) + 440
    29 Flutter 0x46d9d0 std::_fl::__function::__func<flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>>>)::$_1, std::_fl::allocator<flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>>>)::$_1>, void ()>::operator()() + 68
    30 Flutter 0x8bd9c fml::SyncSwitch::Execute(fml::SyncSwitch::Handlers const&) const + 52
    31 Flutter 0x469ef8 flutter::Rasterizer::DrawToSurfaces(flutter::FrameTimingsRecorder&, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>>>) + 392
    32 Flutter 0x46a9f8 flutter::Rasterizer::DoDraw(std::_fl::unique_ptr<flutter::FrameTimingsRecorder, std::_fl::default_deleteflutter::FrameTimingsRecorder>, std::_fl::vector<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>, std::_fl::allocator<std::_fl::unique_ptr<flutter::LayerTreeTask, std::_fl::default_deleteflutter::LayerTreeTask>>>) + 168
    33 Flutter 0x46cd3c std::_fl::__function::__func<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipelineflutter::FrameItem> const&)::$_0, std::_fl::allocator<flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipelineflutter::FrameItem> const&)::$_0>, void (std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_deleteflutter::FrameItem>)>::operator()(std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_deleteflutter::FrameItem>&&) + 88
    34 Flutter 0x46a450 flutter::Pipelineflutter::FrameItem::Consume(std::_fl::function<void (std::_fl::unique_ptr<flutter::FrameItem, std::_fl::default_deleteflutter::FrameItem>)> const&) + 148
    35 Flutter 0x46a128 flutter::Rasterizer::Draw(std::_fl::shared_ptr<flutter::Pipelineflutter::FrameItem> const&) + 148
    36 Flutter 0x481380 std::_fl::__function::__func<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipelineflutter::FrameItem>)::$_0>, std::_fl::allocator<fml::internal::CopyableLambda<flutter::Shell::OnAnimatorDraw(std::_fl::shared_ptr<flutter::Pipelineflutter::FrameItem>)::$_0>>, void ()>::operator()() + 96
    37 Flutter 0x88fb4 fml::MessageLoopImpl::FlushTasks(fml::FlushType) + 156
    38 Flutter 0x8fd88 fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) + 32
    39 CoreFoundation 0x8e548 CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 28
    40 CoreFoundation 0x8e204 __CFRunLoopDoTimer + 948
    41 CoreFoundation 0x8d8a0 __CFRunLoopDoTimers + 284
    42 CoreFoundation 0x87fec __CFRunLoopRun + 1796
    43 CoreFoundation 0x874d4 CFRunLoopRunSpecific + 572
    44 Flutter 0x8feb8 fml::MessageLoopDarwin::Run() + 88
    45 Flutter 0x88ed4 fml::MessageLoopImpl::DoRun() + 40
    46 Flutter 0x8eb50 std::_fl::__function::__func<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0, std::_fl::allocator<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0>, void ()>::operator()() + 184
    47 Flutter 0x8e824 fml::ThreadHandle::ThreadHandle(std::_fl::function<void ()>&&)::$_0::__invoke(void*) + 36
    48 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    49 libsystem_pthread.dylib 0x1998 thread_start + 8

    io.flutter.1.io
    0 libsystem_kernel.dylib 0xb70 mach_msg2_trap + 8
    1 libsystem_kernel.dylib 0x11fac mach_msg2_internal + 72
    2 libsystem_kernel.dylib 0x8c28 mach_msg_overwrite + 480
    3 libsystem_kernel.dylib 0xed8 mach_msg + 20
    4 CoreFoundation 0x8d684 __CFRunLoopServiceMachPort + 156
    5 CoreFoundation 0x87d64 __CFRunLoopRun + 1148
    6 CoreFoundation 0x874d4 CFRunLoopRunSpecific + 572
    7 Flutter 0x8feb8 fml::MessageLoopDarwin::Run() + 88
    8 Flutter 0x88ed4 fml::MessageLoopImpl::DoRun() + 40
    9 Flutter 0x8eb50 std::_fl::__function::__func<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0, std::_fl::allocator<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0>, void ()>::operator()() + 184
    10 Flutter 0x8e824 fml::ThreadHandle::ThreadHandle(std::_fl::function<void ()>&&)::$_0::__invoke(void*) + 36
    11 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    12 libsystem_pthread.dylib 0x1998 thread_start + 8

    io.flutter.1.profiler
    0 libsystem_kernel.dylib 0xb70 mach_msg2_trap + 8
    1 libsystem_kernel.dylib 0x11fac mach_msg2_internal + 72
    2 libsystem_kernel.dylib 0x8c28 mach_msg_overwrite + 480
    3 libsystem_kernel.dylib 0xed8 mach_msg + 20
    4 CoreFoundation 0x8d684 __CFRunLoopServiceMachPort + 156
    5 CoreFoundation 0x87d64 __CFRunLoopRun + 1148
    6 CoreFoundation 0x874d4 CFRunLoopRunSpecific + 572
    7 Flutter 0x8feb8 fml::MessageLoopDarwin::Run() + 88
    8 Flutter 0x88ed4 fml::MessageLoopImpl::DoRun() + 40
    9 Flutter 0x8eb50 std::_fl::__function::__func<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0, std::_fl::allocator<fml::Thread::Thread(std::_fl::function<void (fml::Thread::ThreadConfig const&)> const&, fml::Thread::ThreadConfig const&)::$_0>, void ()>::operator()() + 184
    10 Flutter 0x8e824 fml::ThreadHandle::ThreadHandle(std::_fl::function<void ()>&&)::$_0::__invoke(void*) + 36
    11 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    12 libsystem_pthread.dylib 0x1998 thread_start + 8

    io.worker.1
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 Flutter 0x6441c std::_fl::condition_variable::wait(std::_fl::unique_lockstd::_fl::mutex&) + 24
    3 Flutter 0x85164 fml::ConcurrentMessageLoop::WorkerMain() + 140
    4 Flutter 0x85a90 void* std::_fl::__thread_proxy[abi:nn210000]<std::_fl::tuple<std::_fl::unique_ptr<std::_fl::__thread_struct, std::_fl::default_deletestd::_fl::__thread_struct>, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0>>(void*) + 212
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    io.worker.2
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 Flutter 0x6441c std::_fl::condition_variable::wait(std::_fl::unique_lockstd::_fl::mutex&) + 24
    3 Flutter 0x85164 fml::ConcurrentMessageLoop::WorkerMain() + 140
    4 Flutter 0x85a90 void* std::_fl::__thread_proxy[abi:nn210000]<std::_fl::tuple<std::_fl::unique_ptr<std::_fl::__thread_struct, std::_fl::default_deletestd::_fl::__thread_struct>, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0>>(void*) + 212
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    io.worker.3
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 Flutter 0x6441c std::_fl::condition_variable::wait(std::_fl::unique_lockstd::_fl::mutex&) + 24
    3 Flutter 0x85164 fml::ConcurrentMessageLoop::WorkerMain() + 140
    4 Flutter 0x85a90 void* std::_fl::__thread_proxy[abi:nn210000]<std::_fl::tuple<std::_fl::unique_ptr<std::_fl::__thread_struct, std::_fl::default_deletestd::_fl::__thread_struct>, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0>>(void*) + 212
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    io.worker.4
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 Flutter 0x6441c std::_fl::condition_variable::wait(std::_fl::unique_lockstd::_fl::mutex&) + 24
    3 Flutter 0x85164 fml::ConcurrentMessageLoop::WorkerMain() + 140
    4 Flutter 0x85a90 void* std::_fl::__thread_proxy[abi:nn210000]<std::_fl::tuple<std::_fl::unique_ptr<std::_fl::__thread_struct, std::_fl::default_deletestd::_fl::__thread_struct>, fml::ConcurrentMessageLoop::ConcurrentMessageLoop(unsigned long)::$_0>>(void*) + 212
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    dart:io EventHandler
    0 libsystem_kernel.dylib 0x6670 kevent + 8
    1 Flutter 0x4cd968 dart::bin::EventHandlerImplementation::EventHandlerEntry(unsigned long) + 300
    2 Flutter 0x4e997c dart::bin::ThreadStart(void*) + 88
    3 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    4 libsystem_pthread.dylib 0x1998 thread_start + 8

    Dart Profiler ThreadInterrupter
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x696cd8 dart::ThreadInterrupter::ThreadMain(unsigned long) + 328
    4 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    Dart Profiler SampleBlockProcessor
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x651d10 dart::SampleBlockProcessor::ThreadMain(unsigned long) + 292
    4 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    com.google.firebase.firestore.rpc
    0 libsystem_kernel.dylib 0x8970 poll + 8
    1 grpc 0x10b2c4 pollset_work(grpc_pollset*, grpc_pollset_worker**, grpc_core::Timestamp) + 1388
    2 grpc 0x10e248 pollset_work(grpc_pollset*, grpc_pollset_worker**, grpc_core::Timestamp) + 84
    3 grpc 0xcfd94 cq_next(grpc_completion_queue*, gpr_timespec, void*) + 408
    4 grpcpp 0xf1d0 grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) + 60
    5 FirebaseFirestoreInternal 0x2d048 firebase::firestore::remote::Datastore::PollGrpcQueue() + 84
    6 FirebaseFirestoreInternal 0x13b924 firebase::firestore::util::Task::ExecuteAndRelease() + 188
    7 libdispatch.dylib 0x3978 _dispatch_client_callout + 16
    8 libdispatch.dylib 0xbb10 _dispatch_lane_serial_drain + 960
    9 libdispatch.dylib 0xc688 _dispatch_lane_invoke + 388
    10 libdispatch.dylib 0x17a84 _dispatch_root_queue_drain_deferred_wlh + 276
    11 libdispatch.dylib 0x170d0 _dispatch_workloop_worker_thread + 448
    12 libsystem_pthread.dylib 0x2bcc _pthread_wqthread + 288
    13 libsystem_pthread.dylib 0x198c start_wqthread + 8

    com.google.firebase.crashlytics.MachExceptionServer
    0 libsystem_kernel.dylib 0xb70 mach_msg2_trap + 8
    1 libsystem_kernel.dylib 0x11fac mach_msg2_internal + 72
    2 libsystem_kernel.dylib 0x8c28 mach_msg_overwrite + 480
    3 libsystem_kernel.dylib 0xed8 mach_msg + 20
    4 FirebaseCrashlytics 0x17070 FIRCLSMachExceptionServer + 104
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x2680 __workq_kernreturn + 8
    1 libsystem_pthread.dylib 0x2c18 _pthread_wqthread + 364
    2 libsystem_pthread.dylib 0x198c start_wqthread + 8

    com.apple.NSURLConnectionLoader
    0 libsystem_kernel.dylib 0xb70 mach_msg2_trap + 8
    1 libsystem_kernel.dylib 0x11fac mach_msg2_internal + 72
    2 libsystem_kernel.dylib 0x8c28 mach_msg_overwrite + 480
    3 libsystem_kernel.dylib 0xed8 mach_msg + 20
    4 CoreFoundation 0x8d684 __CFRunLoopServiceMachPort + 156
    5 CoreFoundation 0x87d64 __CFRunLoopRun + 1148
    6 CoreFoundation 0x874d4 CFRunLoopRunSpecific + 572
    7 CFNetwork 0x217cd8 estimatedPropertyListSize + 29172
    8 Foundation 0x645c64 NSThread__start + 720
    9 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    10 libsystem_pthread.dylib 0x1998 thread_start + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x593d04 dart::MutatorThreadPool::OnEnterIdleLocked(dart::MutexLocker*, dart::ThreadPool::Worker*) + 152
    4 Flutter 0x6978d0 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 124
    5 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    6 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    7 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    8 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf468 gpr_cv_wait + 160
    3 grpc 0x1191f8 grpc_core::Executor::ThreadMain(void*) + 192
    4 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf468 gpr_cv_wait + 160
    3 grpc 0x1191f8 grpc_core::Executor::ThreadMain(void*) + 192
    4 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf468 gpr_cv_wait + 160
    3 grpc 0x2ed080 timer_thread(void*) + 556
    4 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x2ebd74 grpc_event_engine::experimental::TimerManager::WaitUntil(grpc_core::Timestamp) + 280
    4 grpc 0x2ec82c void absl::lts_20240722::internal_any_invocable::RemoteInvoker<false, void, grpc_event_engine::experimental::TimerManager::MainLoop()::$_0&>(absl::lts_20240722::internal_any_invocable::TypeErasedState*) + 40
    5 grpc 0x25d64 grpc_event_engine::experimental::SelfDeletingClosure::Run() + 32
    6 grpc 0x313c8c grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 112
    7 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    8 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    9 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    10 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    11 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x313fa4 grpc_event_engine::experimental::WorkStealingThreadPool::WorkSignal::WaitWithTimeout(grpc_core::Duration) + 124
    4 grpc 0x313d10 grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 244
    5 grpc 0x3139bc grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 148
    6 grpc 0x314120 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
    7 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x31337c grpc_core::Notification::WaitForNotificationWithTimeout(absl::lts_20240722::Duration) + 220
    4 grpc 0x313260 grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::Lifeguard::LifeguardMain() + 160
    5 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    com.apple.CFStream.LegacyThread
    0 libsystem_kernel.dylib 0xb70 mach_msg2_trap + 8
    1 libsystem_kernel.dylib 0x11fac mach_msg2_internal + 72
    2 libsystem_kernel.dylib 0x8c28 mach_msg_overwrite + 480
    3 libsystem_kernel.dylib 0xed8 mach_msg + 20
    4 CoreFoundation 0x8d684 __CFRunLoopServiceMachPort + 156
    5 CoreFoundation 0x87d64 __CFRunLoopRun + 1148
    6 CoreFoundation 0x874d4 CFRunLoopRunSpecific + 572
    7 CoreFoundation 0xaad80 _legacyStreamRunLoop_workThread + 260
    8 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    9 libsystem_pthread.dylib 0x1998 thread_start + 8

    com.apple.CFSocket.private
    0 libsystem_kernel.dylib 0xaf98 __select + 8
    1 CoreFoundation 0x9c06c __CFSocketManager + 612
    2 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    3 libsystem_pthread.dylib 0x1998 thread_start + 8

    com.apple.coremedia.imagequeue.coreanimation.common
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 CoreMedia 0x5f62c WaitOnCondition + 16
    3 CoreMedia 0x5f268 FigSemaphoreWaitRelative + 160
    4 MediaToolbox 0x2838a8 piqca_SharedPollingThread + 216
    5 CoreMedia 0x609c8 figThreadMain + 220
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ab8 _pthread_cond_wait + 976
    2 grpc 0x2cf458 gpr_cv_wait + 144
    3 grpc 0x2ed080 timer_thread(void*) + 556
    4 grpc 0x2e4070 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void ()(void), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 140
    5 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    6 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x2680 __workq_kernreturn + 8
    1 libsystem_pthread.dylib 0x2c18 _pthread_wqthread + 364
    2 libsystem_pthread.dylib 0x198c start_wqthread + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x2680 __workq_kernreturn + 8
    1 libsystem_pthread.dylib 0x2c18 _pthread_wqthread + 364
    2 libsystem_pthread.dylib 0x198c start_wqthread + 8

    Thread
    0 libsystem_kernel.dylib 0x2680 __workq_kernreturn + 8
    1 libsystem_pthread.dylib 0x2c18 _pthread_wqthread + 364
    2 libsystem_pthread.dylib 0x198c start_wqthread + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    Thread
    0 libsystem_kernel.dylib 0x2680 __workq_kernreturn + 8
    1 libsystem_pthread.dylib 0x2c18 _pthread_wqthread + 364
    2 libsystem_pthread.dylib 0x198c start_wqthread + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

    DartWorker
    0 libsystem_kernel.dylib 0x4014 __psynch_cvwait + 8
    1 libsystem_pthread.dylib 0x6ae4 _pthread_cond_wait + 1020
    2 Flutter 0x5360ac dart::ConditionVariable::WaitMicros(dart::Mutex*, long long) + 112
    3 Flutter 0x697a50 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) + 508
    4 Flutter 0x697ba8 dart::ThreadPool::Worker::Main(unsigned long) + 116
    5 Flutter 0x64d1a4 dart::ThreadStart(void*) + 204
    6 libsystem_pthread.dylib 0x65f0 _pthread_start + 104
    7 libsystem_pthread.dylib 0x1998 thread_start + 8

  15. gaaclarke commented on Aug 27, 2025

    @gaaclarke
    Member

    I'm closing this as inactionable. We've taken a few steps to try to mitigate the problem:

    1. Added 2 asserts to disambiguate what the crash is: Defensive get local coverage limit #172888
    2. Refactored the code to guarentee one potential source of the problem can't exist: Refactored Canvas to disallow null inline contexts. #174530

    I've looked through the code and can't see a way why the empty render_passes_ could happen at HEAD. So if that was the cause it doesn't seem possible anymore. If the cause was a failed render texture allocation, there is no good resolution since we are in a bad state that will fail eventually. There should be info in the logs if an allocation fails, but without a reproduction there is nothing more we can do for this issue.

    Getting crash reports from users is not a valid excuse for not providing reproductions. Only the developer knows what code is being executed that causes the problem. It's possible a plugin is trashing memory which messes up render target allocation. It's impossible to know. A developer should use crash logs and communications with users to synthesize a reproduction.

  16. moved this from Backend: Vulkan to Done in Slimpelleron Aug 27, 2025
  17. amrgetment commented on Aug 27, 2025

    @amrgetment

    For the reference, I fixed my issue it was related to stack-overflow issue but in the animation
    Anyway I fixed my logic to stop the infinite animation and the widget size measuring, thanks for improving the assertion

  18. github-actions commented on Sep 11, 2025

    @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.

  19. locked as resolved and limited conversation to collaborators on Sep 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority issues at the top of the work lista: productionIssues experienced in live production appsc: crashStack traces logged to the consolee: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.needs repro infoAutomated crash report whose cause isn't yet knownplatform-iosiOS applications specificallyr: solvedIssue is closed as solvedslimpellerEngine binary size reduction. go/slimpellerteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions