Closed Bug 1742990 Opened 3 years ago Closed 3 years ago

Crash in [@ mozilla::detail::MutexImpl::lock | mozilla::layers::NativeLayerRootWayland::AfterFrameClockAfterPaint]

Categories

(Core :: Graphics: WebRender, defect)

All
Linux
defect

Tracking

()

RESOLVED FIXED
97 Branch
Tracking Status
firefox-esr91 --- wontfix
firefox95 --- wontfix
firefox96 --- wontfix
firefox97 --- fixed

People

(Reporter: sefeng, Assigned: rmader)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

Attachments

(1 file)

Maybe Fission related. (DOMFissionEnabled=1)

Crash report: https://crash-stats.mozilla.org/report/index/b479521d-dfe8-4570-bad6-cb4d90211124

MOZ_CRASH Reason: MOZ_CRASH(mozilla::detail::MutexImpl::mutexLock: pthread_mutex_lock failed)

Top 10 frames of crashing thread:

0 firefox-bin mozilla::detail::MutexImpl::lock mozglue/misc/Mutex_posix.cpp:118
1 libxul.so mozilla::layers::NativeLayerRootWayland::AfterFrameClockAfterPaint gfx/layers/NativeLayerWayland.cpp:268
2 libgobject-2.0.so.0 g_closure_invoke 
3 libgobject-2.0.so.0 g_signal_handlers_destroy 
4 libgobject-2.0.so.0 g_signal_emit_valist 
5 libgobject-2.0.so.0 g_signal_emit 
6 libgdk-3.so.0 gdk_cairo_draw_from_gl 
7 libgdk-3.so.0 gdk_threads_leave 
8 libglib-2.0.so.0 g_main_context_check 
9 libglib-2.0.so.0 g_main_context_dispatch 

Robert, this looks very similar to bug 1716006, can yo utake a look?

Assignee: nobody → robert.mader

Thanks, will look at it. Note that this does not default configurations but only setups with manually enabled gfx.webrender.compositor.force-enabled (and MOZ_ENABLE_WAYLAND=1), so severity is very low.

From the report:

|[0][GFX1-]: Failed to persistently map PBO of size 1048576 bytes (t=19.1119) |[1][GFX1-]: Failed to persistently map PBO of size 1048576 bytes (t=19.1121) |[2][GFX1-]: Failed to persistently map PBO of size 1048576 bytes (t=19.1122) |[3][GFX1-]: Failed to persistently map PBO of size 1048576 bytes (t=19.1122) |[4][GFX1]: Device reset due to WR context (t=19.1125) |[5][GFX1-]: GFX: RenderThread detected a device reset in PostUpdate (t=19.1126) |[6][GFX1-]: Device reporting insufficient max texture size (0) (t=19.1331) |[7][GFX1-]: wr_window_new: MaxTextureSize (t=19.1332) |[8][GFX1-]: Failed to connect WebRenderBridgeChild. (t=19.1333) |[9][GFX1-]: Fallback WR to SW-WR (t=19.1334) 

So it may be that we only get to the crash condition after a HW-WR crash.

FTR: the crash here happens in a code path I hope to get rid of in bug 1735494.

See Also: → 1735494

In rare cases a NativeLayerRootWayland gets destroyed while the
connected GdkFrameClock is still in use. This apparently happens
after a fallback from HW-WR to SW-WR.

The current architecture here is a bit problematic - things can
change below our feet. Thus just try to disconnect the signal
if easily possible.

Pushed by robert.mader@posteo.de: https://hg.mozilla.org/integration/autoland/rev/056f2076a6b3 Disconnect after-paint listener, r=gfx-reviewers,lsalzman
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 97 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: