These crashes happen only on macOS 13 and 14, so they may be partly an Apple bug. But they started somewhere on the 127 branch, so presumably they're also at least partly a Mozilla bug. They don't happen frequently enough to pin down a precise regression range. They all have `_cairo_quartz_snapshot_create` on the stack. https://crash-stats.mozilla.org/search/?proto_signature=~cairo_quartz_snapshot_create&date=%3E%3D2024-05-06T15%3A05%3A00.000Z&date=%3C2024-06-06T15%3A05%3A00.000Z&_facets=signature&_facets=version&_facets=platform_version&_facets=proto_signature&_sort=-date&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-proto_signature Typical crash stack: ``` Crashing Thread (0), Name: MainThread Frame Module Signature Source Trust 0 libsystem_platform.dylib _platform_memmove context 1 CoreGraphics create_protected_copy cfi 2 CoreGraphics CGDataProviderCreateWithCopyOfData cfi 3 CoreGraphics CGDataProviderCreateTrustedWithCopyOfData cfi 4 CoreGraphics CGBitmapContextCreateImage cfi 5 XUL _cairo_quartz_snapshot_create gfx/cairo/cairo/src/cairo-quartz-surface.c:2650 cfi 6 XUL _cairo_quartz_surface_snapshot_get_image gfx/cairo/cairo/src/cairo-quartz-surface.c:2676 cfi 7 XUL _cairo_surface_to_cgimage gfx/cairo/cairo/src/cairo-quartz-surface.c:756 cfi 8 XUL _cairo_quartz_setup_pattern_source gfx/cairo/cairo/src/cairo-quartz-surface.c:987 inlined 8 XUL _cairo_quartz_setup_state gfx/cairo/cairo/src/cairo-quartz-surface.c:1248 cfi 9 XUL _cairo_quartz_cg_fill gfx/cairo/cairo/src/cairo-quartz-surface.c:1858 cfi 10 XUL _cairo_compositor_fill gfx/cairo/cairo/src/cairo-compositor.c:245 cfi 11 XUL _cairo_surface_fill gfx/cairo/cairo/src/cairo-surface.c:2502 cfi 12 XUL _cairo_gstate_fill gfx/cairo/cairo/src/cairo-gstate.c:1352 cfi 13 XUL _moz_cairo_fill_preserve gfx/cairo/cairo/src/cairo.c:2454 cfi 14 XUL mozilla::gfx::DrawTargetCairo::DrawPattern(mozilla::gfx::Pattern const&, mozilla::gfx::StrokeOptions const&, mozilla::gfx::DrawOptions const&, mozilla::gfx::DrawTargetCairo::DrawPatternType, bool) gfx/2d/DrawTargetCairo.cpp:1051 cfi 15 XUL mozilla::gfx::DrawTargetCairo::FillRect(mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::Pattern const&, mozilla::gfx::DrawOptions const&) gfx/2d/DrawTargetCairo.cpp:1101 cfi 16 XUL mozilla::gfx::RecordedFillRect::PlayEvent(mozilla::gfx::Translator*) const gfx/2d/RecordedEventImpl.h:2489 cfi 17 XUL std::__1::__function::__value_func<bool (mozilla::gfx::RecordedEvent*)>::operator()[abi:un170006](mozilla::gfx::RecordedEvent*&&) const /builds/worker/fetches/MacOSX14.4.sdk/usr/include/c++/v1/__functional/function.h:518 inlined 17 XUL std::__1::function<bool (mozilla::gfx::RecordedEvent*)>::operator()(mozilla::gfx::RecordedEvent*) const /builds/worker/fetches/MacOSX14.4.sdk/usr/include/c++/v1/__functional/function.h:1169 inlined 17 XUL mozilla::gfx::RecordedEvent::DoWithEvent<mozilla::gfx::EventStream>(mozilla::gfx::EventStream&, mozilla::gfx::RecordedEvent::EventType, std::__1::function<bool (mozilla::gfx::RecordedEvent*)> const&) gfx/2d/RecordedEventImpl.h:4514 cfi 18 XUL mozilla::layout::PrintTranslator::TranslateRecording(mozilla::layout::PRFileDescStream&) layout/printing/PrintTranslator.cpp:54 cfi 19 XUL mozilla::layout::RemotePrintJobParent::PrintPage(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layout::PRFileDescStream&, nsRefCountedHashtable<nsIntegralHashKey<unsigned long long, 0>, RefPtr<mozilla::gfx::RecordedDependentSurface> >*) layout/printing/ipc/RemotePrintJobParent.cpp:179 cfi 20 XUL mozilla::layout::RemotePrintJobParent::FinishProcessingPage(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, nsRefCountedHashtable<nsIntegralHashKey<unsigned long long, 0>, RefPtr<mozilla::gfx::RecordedDependentSurface> >*) layout/printing/ipc/RemotePrintJobParent.cpp:158 inlined 20 XUL mozilla::layout::RemotePrintJobParent::RecvProcessPage(int const&, int const&, nsTArray<unsigned long long>&&) layout/printing/ipc/RemotePrintJobParent.cpp:132 cfi 21 XUL mozilla::layout::PRemotePrintJobParent::OnMessageReceived(IPC::Message const&) ipc/ipdl/PRemotePrintJobParent.cpp:376 cfi 22 XUL mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) ipc/ipdl/PContentParent.cpp:6517 cfi 23 XUL mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) ipc/glue/MessageChannel.cpp:1820 inlined 23 XUL mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message, mozilla::DefaultDelete<IPC::Message> >) ipc/glue/MessageChannel.cpp:1739 inlined 23 XUL mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) ipc/glue/MessageChannel.cpp:1530 inlined 23 XUL mozilla::ipc::MessageChannel::MessageTask::Run() ipc/glue/MessageChannel.cpp:1630 cfi 24 XUL mozilla::RunnableTask::Run() xpcom/threads/TaskController.cpp:580 inlined 24 XUL mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) xpcom/threads/TaskController.cpp:907 inlined 24 XUL mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) xpcom/threads/TaskController.cpp:730 cfi 25 XUL mozilla::TaskController::ProcessPendingMTTask(bool) xpcom/threads/TaskController.cpp:516 inlined 25 XUL mozilla::TaskController::TaskController()::$_0::operator()() const xpcom/threads/TaskController.cpp:234 inlined 25 XUL mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_0>::Run() xpcom/threads/nsThreadUtils.h:548 cfi 26 XUL nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp:1199 inlined 26 XUL NS_ProcessPendingEvents(nsIThread*, unsigned int) xpcom/threads/nsThreadUtils.cpp:445 cfi 27 XUL nsBaseAppShell::NativeEventCallback() widget/nsBaseAppShell.cpp:87 cfi 28 XUL nsAppShell::ProcessGeckoEvents(void*) widget/cocoa/nsAppShell.mm:541 cfi 29 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ cfi 30 CoreFoundation __CFRunLoopDoSource0 cfi 31 CoreFoundation __CFRunLoopDoSources0 cfi 32 CoreFoundation __CFRunLoopRun cfi 33 CoreFoundation CFRunLoopRunSpecific cfi 34 HIToolbox RunCurrentEventLoopInMode cfi 35 HIToolbox ReceiveNextEventCommon cfi 36 HIToolbox _BlockUntilNextEventMatchingListInModeWithFilter cfi 37 AppKit _DPSNextEvent cfi 38 AppKit -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] cfi 39 XUL -[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] widget/cocoa/nsAppShell.mm:196 cfi 40 AppKit -[NSApplication run] cfi 41 XUL -[GeckoNSApplication run] widget/cocoa/nsAppShell.mm:174 cfi 42 XUL nsAppShell::Run() widget/cocoa/nsAppShell.mm:871 cfi 43 XUL nsAppStartup::Run() toolkit/components/startup/nsAppStartup.cpp:296 cfi 44 XUL XREMain::XRE_mainRun() toolkit/xre/nsAppRunner.cpp:5741 cfi 45 XUL XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:5953 cfi 46 XUL XRE_main(int, char**, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:6010 cfi 47 firefox do_main(int, char**, char**) browser/app/nsBrowserApp.cpp:230 inlined 47 firefox main browser/app/nsBrowserApp.cpp:448 cfi 48 dyld start cfi ```
Bug 1901043 Comment 0 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
These crashes happen only on macOS 13 and 14, so they may be partly an Apple bug. But they started somewhere on the 127 branch, so presumably they're also at least partly a Mozilla bug. They don't happen frequently enough to pin down a precise regression range. Edit: They also happen on macOS 12 and 11. They all have `_cairo_quartz_snapshot_create` on the stack. https://crash-stats.mozilla.org/search/?proto_signature=~cairo_quartz_snapshot_create&date=%3E%3D2024-05-06T15%3A05%3A00.000Z&date=%3C2024-06-06T15%3A05%3A00.000Z&_facets=signature&_facets=version&_facets=platform_version&_facets=proto_signature&_sort=-date&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-proto_signature Typical crash stack: ``` Crashing Thread (0), Name: MainThread Frame Module Signature Source Trust 0 libsystem_platform.dylib _platform_memmove context 1 CoreGraphics create_protected_copy cfi 2 CoreGraphics CGDataProviderCreateWithCopyOfData cfi 3 CoreGraphics CGDataProviderCreateTrustedWithCopyOfData cfi 4 CoreGraphics CGBitmapContextCreateImage cfi 5 XUL _cairo_quartz_snapshot_create gfx/cairo/cairo/src/cairo-quartz-surface.c:2650 cfi 6 XUL _cairo_quartz_surface_snapshot_get_image gfx/cairo/cairo/src/cairo-quartz-surface.c:2676 cfi 7 XUL _cairo_surface_to_cgimage gfx/cairo/cairo/src/cairo-quartz-surface.c:756 cfi 8 XUL _cairo_quartz_setup_pattern_source gfx/cairo/cairo/src/cairo-quartz-surface.c:987 inlined 8 XUL _cairo_quartz_setup_state gfx/cairo/cairo/src/cairo-quartz-surface.c:1248 cfi 9 XUL _cairo_quartz_cg_fill gfx/cairo/cairo/src/cairo-quartz-surface.c:1858 cfi 10 XUL _cairo_compositor_fill gfx/cairo/cairo/src/cairo-compositor.c:245 cfi 11 XUL _cairo_surface_fill gfx/cairo/cairo/src/cairo-surface.c:2502 cfi 12 XUL _cairo_gstate_fill gfx/cairo/cairo/src/cairo-gstate.c:1352 cfi 13 XUL _moz_cairo_fill_preserve gfx/cairo/cairo/src/cairo.c:2454 cfi 14 XUL mozilla::gfx::DrawTargetCairo::DrawPattern(mozilla::gfx::Pattern const&, mozilla::gfx::StrokeOptions const&, mozilla::gfx::DrawOptions const&, mozilla::gfx::DrawTargetCairo::DrawPatternType, bool) gfx/2d/DrawTargetCairo.cpp:1051 cfi 15 XUL mozilla::gfx::DrawTargetCairo::FillRect(mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::Pattern const&, mozilla::gfx::DrawOptions const&) gfx/2d/DrawTargetCairo.cpp:1101 cfi 16 XUL mozilla::gfx::RecordedFillRect::PlayEvent(mozilla::gfx::Translator*) const gfx/2d/RecordedEventImpl.h:2489 cfi 17 XUL std::__1::__function::__value_func<bool (mozilla::gfx::RecordedEvent*)>::operator()[abi:un170006](mozilla::gfx::RecordedEvent*&&) const /builds/worker/fetches/MacOSX14.4.sdk/usr/include/c++/v1/__functional/function.h:518 inlined 17 XUL std::__1::function<bool (mozilla::gfx::RecordedEvent*)>::operator()(mozilla::gfx::RecordedEvent*) const /builds/worker/fetches/MacOSX14.4.sdk/usr/include/c++/v1/__functional/function.h:1169 inlined 17 XUL mozilla::gfx::RecordedEvent::DoWithEvent<mozilla::gfx::EventStream>(mozilla::gfx::EventStream&, mozilla::gfx::RecordedEvent::EventType, std::__1::function<bool (mozilla::gfx::RecordedEvent*)> const&) gfx/2d/RecordedEventImpl.h:4514 cfi 18 XUL mozilla::layout::PrintTranslator::TranslateRecording(mozilla::layout::PRFileDescStream&) layout/printing/PrintTranslator.cpp:54 cfi 19 XUL mozilla::layout::RemotePrintJobParent::PrintPage(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layout::PRFileDescStream&, nsRefCountedHashtable<nsIntegralHashKey<unsigned long long, 0>, RefPtr<mozilla::gfx::RecordedDependentSurface> >*) layout/printing/ipc/RemotePrintJobParent.cpp:179 cfi 20 XUL mozilla::layout::RemotePrintJobParent::FinishProcessingPage(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, nsRefCountedHashtable<nsIntegralHashKey<unsigned long long, 0>, RefPtr<mozilla::gfx::RecordedDependentSurface> >*) layout/printing/ipc/RemotePrintJobParent.cpp:158 inlined 20 XUL mozilla::layout::RemotePrintJobParent::RecvProcessPage(int const&, int const&, nsTArray<unsigned long long>&&) layout/printing/ipc/RemotePrintJobParent.cpp:132 cfi 21 XUL mozilla::layout::PRemotePrintJobParent::OnMessageReceived(IPC::Message const&) ipc/ipdl/PRemotePrintJobParent.cpp:376 cfi 22 XUL mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) ipc/ipdl/PContentParent.cpp:6517 cfi 23 XUL mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) ipc/glue/MessageChannel.cpp:1820 inlined 23 XUL mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message, mozilla::DefaultDelete<IPC::Message> >) ipc/glue/MessageChannel.cpp:1739 inlined 23 XUL mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) ipc/glue/MessageChannel.cpp:1530 inlined 23 XUL mozilla::ipc::MessageChannel::MessageTask::Run() ipc/glue/MessageChannel.cpp:1630 cfi 24 XUL mozilla::RunnableTask::Run() xpcom/threads/TaskController.cpp:580 inlined 24 XUL mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) xpcom/threads/TaskController.cpp:907 inlined 24 XUL mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) xpcom/threads/TaskController.cpp:730 cfi 25 XUL mozilla::TaskController::ProcessPendingMTTask(bool) xpcom/threads/TaskController.cpp:516 inlined 25 XUL mozilla::TaskController::TaskController()::$_0::operator()() const xpcom/threads/TaskController.cpp:234 inlined 25 XUL mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_0>::Run() xpcom/threads/nsThreadUtils.h:548 cfi 26 XUL nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp:1199 inlined 26 XUL NS_ProcessPendingEvents(nsIThread*, unsigned int) xpcom/threads/nsThreadUtils.cpp:445 cfi 27 XUL nsBaseAppShell::NativeEventCallback() widget/nsBaseAppShell.cpp:87 cfi 28 XUL nsAppShell::ProcessGeckoEvents(void*) widget/cocoa/nsAppShell.mm:541 cfi 29 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ cfi 30 CoreFoundation __CFRunLoopDoSource0 cfi 31 CoreFoundation __CFRunLoopDoSources0 cfi 32 CoreFoundation __CFRunLoopRun cfi 33 CoreFoundation CFRunLoopRunSpecific cfi 34 HIToolbox RunCurrentEventLoopInMode cfi 35 HIToolbox ReceiveNextEventCommon cfi 36 HIToolbox _BlockUntilNextEventMatchingListInModeWithFilter cfi 37 AppKit _DPSNextEvent cfi 38 AppKit -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] cfi 39 XUL -[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] widget/cocoa/nsAppShell.mm:196 cfi 40 AppKit -[NSApplication run] cfi 41 XUL -[GeckoNSApplication run] widget/cocoa/nsAppShell.mm:174 cfi 42 XUL nsAppShell::Run() widget/cocoa/nsAppShell.mm:871 cfi 43 XUL nsAppStartup::Run() toolkit/components/startup/nsAppStartup.cpp:296 cfi 44 XUL XREMain::XRE_mainRun() toolkit/xre/nsAppRunner.cpp:5741 cfi 45 XUL XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:5953 cfi 46 XUL XRE_main(int, char**, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:6010 cfi 47 firefox do_main(int, char**, char**) browser/app/nsBrowserApp.cpp:230 inlined 47 firefox main browser/app/nsBrowserApp.cpp:448 cfi 48 dyld start cfi ```