GNOME Bugzilla – Bug 776036
wayland: mutter fails with meta-wayland-surface.c:1183:update_surface_output_state: assertion failed: (surface->role)
Last modified: 2016-12-13 17:03:07 UTC
Summary: This is a follow up on bug 775986 and apparently a regression that appeared after bug 771694 When testing gtksourceview against mutter, mutter dies with an assert() failed: mutter/src/wayland/meta-wayland-surface.c:1183:update_surface_output_state: assertion failed: (surface->role) How reproducible: always Steps to reproduce: 1. Run gtksourceview test-completion $ WAYLAND_DISPLAY=wayland-1 jhbuild run ~/.cache/jhbuild/build/gtksourceview/tests/test-completion 2. Start typing a few characters until the completion widget appears 3. Navigate to some item in the list, and click on "Details", the detail window pop-up shows up 4. Click again on Details to hide the detail pop-up Expected result: The detail pop-up window hides Actual result: mutter dies with assertion failed. Additional info: backtrace
+ Trace 236974
Regression caused by commit 5eb5f72 from bug 775478
Created attachment 341865 [details] [review] [PATCH] wayland: disconnect mapped signal handler on destroy Commit 5eb5f72 - wayland: Check surface outputs after mapped state changes connected the ::mapped signal handler, we need to disconnect it on destroy to avoid a possible assertion failure in update_surface_output_state()
Review of attachment 341865 [details] [review]: Doh, looks right to me. Should we also disconnect from MetaSurfaceActor::painting?
(In reply to Carlos Garnacho from comment #3) > Review of attachment 341865 [details] [review] [review]: > > Doh, looks right to me. Should we also disconnect from > MetaSurfaceActor::painting? I could be wrong but at least I don't see it causing a crash, besides it's not part of a recent change, is it?
(In reply to Olivier Fourdan from comment #4) > (In reply to Carlos Garnacho from comment #3) > > Review of attachment 341865 [details] [review] [review] [review]: > > > > Doh, looks right to me. Should we also disconnect from > > MetaSurfaceActor::painting? > > I could be wrong but at least I don't see it causing a crash, besides it's > not part of a recent change, is it? I don't think we need to disconnect that one. We won't be painted during the destruction, so it won't be triggered before its automatically disconnected at GObject destruction.
Comment on attachment 341865 [details] [review] [PATCH] wayland: disconnect mapped signal handler on destroy attachment 341865 [details] [review] pushed to git master as commit 1ab6ac2 - wayland: disconnect mapped signal handler on destroy
Not pushing to gnome-3-22 branch as it's not affected (commit 5eb5f72 was not backported to gnome-3-22)
(In reply to Jonas Ådahl from comment #5) > (In reply to Olivier Fourdan from comment #4) > > (In reply to Carlos Garnacho from comment #3) > > > Review of attachment 341865 [details] [review] [review] [review] [review]: > > > > > > Doh, looks right to me. Should we also disconnect from > > > MetaSurfaceActor::painting? > > > > I could be wrong but at least I don't see it causing a crash, besides it's > > not part of a recent change, is it? > > I don't think we need to disconnect that one. We won't be painted during the > destruction, so it won't be triggered before its automatically disconnected > at GObject destruction. Fair enough, I was just thinking that if the MetaSurfaceActor can be artificially kept alive after the MetaWaylandSurface is destroyed, there's a chance for that to happen.