After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 785512 - wayland: Crash when destroying subsurface before surface: "assertion failed: (surface->role)"
wayland: Crash when destroying subsurface before surface: "assertion failed: ...
Status: RESOLVED OBSOLETE
Product: mutter
Classification: Core
Component: wayland
git master
Other All
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2017-07-28 06:17 UTC by 28872d13
Modified: 2021-07-05 13:50 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description 28872d13 2017-07-28 06:17:09 UTC
I noticed that mutter reliably crashes when one destroys the wl_surface first and then its associated wl_subsurface. The protocol does not forbid this and mutter should not crash in either case.

It's hitting the assertion "surface->role" in meta-wayland-surface.c:update_surface_output_state.

  • #0 raise
    from /usr/lib/libc.so.6
  • #1 abort
    from /usr/lib/libc.so.6
  • #2 g_assertion_message
  • #3 g_assertion_message_expr
    at /data/data3/Programme/jhbuild/checkout/glib/glib/gtestutils.c line 2456
  • #4 update_surface_output_state
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland-surface.c line 1241
  • #5 g_hash_table_foreach
    at /data/data3/Programme/jhbuild/checkout/glib/glib/ghash.c line 1614
  • #6 meta_wayland_surface_update_outputs
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland-surface.c line 1268
  • #7 surface_actor_mapped_notify
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland-surface.c line 1347
  • #8 g_closure_invoke
    at /data/data3/Programme/jhbuild/checkout/glib/gobject/gclosure.c line 804
  • #9 signal_emit_unlocked_R
    at /data/data3/Programme/jhbuild/checkout/glib/gobject/gsignal.c line 3635
  • #10 g_signal_emit_valist
    at /data/data3/Programme/jhbuild/checkout/glib/gobject/gsignal.c line 3391
  • #11 g_signal_emit
    at /data/data3/Programme/jhbuild/checkout/glib/gobject/gsignal.c line 3447
  • #12 g_object_dispatch_properties_changed
    at /data/data3/Programme/jhbuild/checkout/glib/gobject/gobject.c line 1064
  • #13 g_object_notify_by_spec_internal
    at /data/data3/Programme/jhbuild/checkout/glib/gobject/gobject.c line 1157
  • #14 g_object_notify_by_pspec
    at /data/data3/Programme/jhbuild/checkout/glib/gobject/gobject.c line 1267
  • #15 clutter_actor_real_unmap
    at /data/data3/Programme/jhbuild/checkout/mutter/clutter/clutter/clutter-actor.c line 1607
  • #16 clutter_actor_set_mapped
    at /data/data3/Programme/jhbuild/checkout/mutter/clutter/clutter/clutter-actor.c line 1283
  • #17 clutter_actor_update_map_state
    at /data/data3/Programme/jhbuild/checkout/mutter/clutter/clutter/clutter-actor.c line 1457
  • #18 clutter_actor_remove_child_internal
    at /data/data3/Programme/jhbuild/checkout/mutter/clutter/clutter/clutter-actor.c line 4252
  • #19 clutter_actor_remove_child
    at /data/data3/Programme/jhbuild/checkout/mutter/clutter/clutter/clutter-actor.c line 13253
  • #20 unparent_actor
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland-surface.c line 1424
  • #21 wl_subsurface_destructor
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland-surface.c line 1439
  • #22 destroy_resource
    at /data/data3/Programme/jhbuild/checkout/wayland/src/wayland-server.c line 675
  • #23 wl_resource_destroy
    at /data/data3/Programme/jhbuild/checkout/wayland/src/wayland-server.c line 690
  • #24 wl_surface_destructor
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland-surface.c line 1335
  • #25 destroy_resource
    at /data/data3/Programme/jhbuild/checkout/wayland/src/wayland-server.c line 675
  • #26 wl_resource_destroy
    at /data/data3/Programme/jhbuild/checkout/wayland/src/wayland-server.c line 690
  • #27 wl_surface_destroy
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland-surface.c line 903
  • #28 ffi_call_unix64
    from /usr/lib/libffi.so.6
  • #29 ffi_call
    from /usr/lib/libffi.so.6
  • #30 wl_closure_invoke
    at /data/data3/Programme/jhbuild/checkout/wayland/src/connection.c line 935
  • #31 wl_client_connection_data
    at /data/data3/Programme/jhbuild/checkout/wayland/src/wayland-server.c line 406
  • #32 wl_event_loop_dispatch
    at /data/data3/Programme/jhbuild/checkout/wayland/src/event-loop.c line 423
  • #33 wayland_event_source_dispatch
    at /data/data3/Programme/jhbuild/checkout/mutter/src/wayland/meta-wayland.c line 81
  • #34 g_main_dispatch
    at /data/data3/Programme/jhbuild/checkout/glib/glib/gmain.c line 3148
  • #35 g_main_context_dispatch
    at /data/data3/Programme/jhbuild/checkout/glib/glib/gmain.c line 3813
  • #36 g_main_context_iterate
    at /data/data3/Programme/jhbuild/checkout/glib/glib/gmain.c line 3886
  • #37 g_main_loop_run
    at /data/data3/Programme/jhbuild/checkout/glib/glib/gmain.c line 4082
  • #38 meta_run
    at /data/data3/Programme/jhbuild/checkout/mutter/src/core/main.c line 648
  • #39 main
    at /data/data3/Programme/jhbuild/checkout/mutter/src/core/mutter.c line 85

Comment 1 GNOME Infrastructure Team 2021-07-05 13:50:26 UTC
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org.
As part of that, we are mass-closing older open tickets in bugzilla.gnome.org
which have not seen updates for a longer time (resources are unfortunately
quite limited so not every ticket can get handled).

If you can still reproduce the situation described in this ticket in a recent
and supported software version, then please follow
  https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines
and create a new ticket at
  https://gitlab.gnome.org/GNOME/mutter/-/issues/

Thank you for your understanding and your help.