Parent process deadlock when hiding a window
Categories
(Core :: Widget: Gtk, defect, P3)
Tracking
()
People
(Reporter: emilio, Unassigned)
References
(Blocks 1 open bug)
Details
Crash report: bp-5f20c0bf-74dc-4035-9827-9199b0220719
It seems the parent process is sending a sync Pause() to the compositor, but the compositor is sending a sync Resume() to the parent process.
Comment 1•3 years ago
|
||
I wonder if WindowSurfaceWaylandMB::Commit() might cause a dead lock.
First lock was held in
And second lock was tried to be held in
moz_container_wayland_add_initial_draw_callback() could call a callback if it is ready.
https://searchfox.org/mozilla-central/rev/108c7843696fdf951083889d6fb858953139be96/widget/gtk/MozContainerWayland.cpp#216
(In reply to Sotaro Ikeda [:sotaro] from comment #1)
I wonder if WindowSurfaceWaylandMB::Commit() might cause a dead lock.
First lock was held in
And second lock was tried to be held in
moz_container_wayland_add_initial_draw_callback() could call a callback if it is ready.
https://searchfox.org/mozilla-central/rev/108c7843696fdf951083889d6fb858953139be96/widget/gtk/MozContainerWayland.cpp#216
Yes, that's correct - moz_container_wayland_add_initial_draw_callback() can fire the callback immediately so we have a deadlock here.
Changed component according to comment 1.
Bug 1780389 should handle the scenario from comment 1. I think the root cause here is the Pause()/Resume() call so let's fix that deadlock as extra bug.
Description
•