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 755493 - Segmentation fault on removing secondary output while a native app is displayed on it
Segmentation fault on removing secondary output while a native app is display...
Status: RESOLVED DUPLICATE of bug 755096
Product: mutter
Classification: Core
Component: wayland
3.18.x
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2015-09-23 18:30 UTC by Armin K.
Modified: 2015-09-24 00:11 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Armin K. 2015-09-23 18:30:25 UTC
When using a multi-monitor setup and moving a native (wayland) app to it, removing the monitor cable will cause gnome-shell to crash. Same thing doesn't appear to happen if an X11 app happened to be on the second screen, it just gets moved to the primary one.

Stack trace captured by systemd-coredump:

      Coredump: /var/lib/systemd/coredump/core.gnome-shell.1000.e109f832e546428f95e5d794761d670c.22994.1443032786000000.xz
       Message: Process 22994 (gnome-shell) of user 1000 dumped core.
                
                Stack trace of thread 22994:
                #0  0x00007fdd3825fcac g_hash_table_lookup_node (libglib-2.0.so.0)
                #1  0x00007fdd3be0440f set_surface_is_on_output (libmutter.so.0)
                #2  0x00007fdd38543715 g_closure_invoke (libgobject-2.0.so.0)
                #3  0x00007fdd38555731 signal_emit_unlocked_R (libgobject-2.0.so.0)
                #4  0x00007fdd3855e4cc g_signal_emit_valist (libgobject-2.0.so.0)
                #5  0x00007fdd3855e807 g_signal_emit (libgobject-2.0.so.0)
                #6  0x00007fdd3be06263 wayland_output_destroy_notify (libmutter.so.0)
                #7  0x00007fdd3825ef4a g_hash_table_remove_all_nodes (libglib-2.0.so.0)
                #8  0x00007fdd3825fe93 g_hash_table_remove_all_nodes (libglib-2.0.so.0)
                #9  0x00007fdd3825fece g_hash_table_destroy (libglib-2.0.so.0)
                #10 0x00007fdd3be0669d meta_wayland_compositor_update_outputs (libmutter.so.0)
                #11 0x00007fdd3be0671f on_monitors_changed (libmutter.so.0)
                #12 0x00007fdd34bb3080 ffi_call_unix64 (libffi.so.6)
                #13 0x00007fdd34bb2aeb ffi_call (libffi.so.6)
                #14 0x00007fdd38543f39 g_cclosure_marshal_generic (libgobject-2.0.so.0)
                #15 0x00007fdd38543715 g_closure_invoke (libgobject-2.0.so.0)
                #16 0x00007fdd38555731 signal_emit_unlocked_R (libgobject-2.0.so.0)
                #17 0x00007fdd3855e4cc g_signal_emit_valist (libgobject-2.0.so.0)
                #18 0x00007fdd3855ece5 g_signal_emit_by_name (libgobject-2.0.so.0)
                #19 0x00007fdd3bda3e59 meta_monitor_manager_rebuild_derived (libmutter.so.0)
                #20 0x00007fdd3be0a8c0 meta_monitor_manager_kms_apply_configuration (libmutter.so.0)
                #21 0x00007fdd3bda0485 apply_configuration (libmutter.so.0)
                #22 0x00007fdd3bda0d8f meta_monitor_config_make_default (libmutter.so.0)
                #23 0x00007fdd38543715 g_closure_invoke (libgobject-2.0.so.0)
                #24 0x00007fdd38555731 signal_emit_unlocked_R (libgobject-2.0.so.0)
                #25 0x00007fdd3855e4cc g_signal_emit_valist (libgobject-2.0.so.0)
                #26 0x00007fdd3855e807 g_signal_emit (libgobject-2.0.so.0)
                #27 0x00007fdd326c3c14 monitor_event (libgudev-1.0.so.0)
                #28 0x00007fdd3827092a g_main_dispatch (libglib-2.0.so.0)
                #29 0x00007fdd38270cd0 g_main_context_iterate (libglib-2.0.so.0)
                #30 0x00007fdd38270ff2 g_main_loop_run (libglib-2.0.so.0)
                #31 0x00007fdd3bdcd5b6 meta_run (libmutter.so.0)
                #32 0x000000000040242f main (gnome-shell)
                #33 0x00007fdd366bb5e0 __libc_start_main (libc.so.6)
                #34 0x0000000000402539 _start (gnome-shell)
                
                Stack trace of thread 22997:
                #0  0x00007fdd3677b05d poll (libc.so.6)
                #1  0x00007fdd38270c6c g_main_context_poll (libglib-2.0.so.0)
                #2  0x00007fdd38270ff2 g_main_loop_run (libglib-2.0.so.0)
                #3  0x00007fdd396c3276 gdbus_shared_thread_func (libgio-2.0.so.0)
                #4  0x00007fdd38297285 g_thread_proxy (libglib-2.0.so.0)
                #5  0x00007fdd36a45434 start_thread (libpthread.so.0)
                #6  0x00007fdd36783a0d __clone (libc.so.6)
                
                Stack trace of thread 22996:
                #0  0x00007fdd3677b05d poll (libc.so.6)
                #1  0x00007fdd38270c6c g_main_context_poll (libglib-2.0.so.0)
                #2  0x00007fdd38270d7c g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007fdd38270db9 glib_worker_main (libglib-2.0.so.0)
                #4  0x00007fdd38297285 g_thread_proxy (libglib-2.0.so.0)
                #5  0x00007fdd36a45434 start_thread (libpthread.so.0)
                #6  0x00007fdd36783a0d __clone (libc.so.6)
                
                Stack trace of thread 22999:
                #0  0x00007fdd3677b05d poll (libc.so.6)
                #1  0x00007fdd38270c6c g_main_context_poll (libglib-2.0.so.0)
                #2  0x00007fdd38270d7c g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007fdd1bbf723d n/a (libdconfsettings.so)
                #4  0x00007fdd38297285 g_thread_proxy (libglib-2.0.so.0)
                #5  0x00007fdd36a45434 start_thread (libpthread.so.0)
                #6  0x00007fdd36783a0d __clone (libc.so.6)
                
                Stack trace of thread 23198:
                #0  0x00007fdd3677f5a9 syscall (libc.so.6)
                #1  0x00007fdd382b55ba g_cond_wait_until (libglib-2.0.so.0)
                #2  0x00007fdd38245859 g_async_queue_pop_intern_unlocked (libglib-2.0.so.0)
                #3  0x00007fdd38245e7b g_async_queue_timeout_pop (libglib-2.0.so.0)
                #4  0x00007fdd38297cda g_thread_pool_wait_for_new_pool (libglib-2.0.so.0)
                #5  0x00007fdd38297285 g_thread_proxy (libglib-2.0.so.0)
                #6  0x00007fdd36a45434 start_thread (libpthread.so.0)
                #7  0x00007fdd36783a0d __clone (libc.so.6)
                
                Stack trace of thread 23016:
                #0  0x00007fdd3677b05d poll (lib



GNOME 3.18, Mesa-11.0.0, Xorg-Server-1.17.99.901 (XWayland), Wayland-1.9.0, Linux-4.3-rc2.
Comment 1 Armin K. 2015-09-23 18:31:15 UTC
Backtrace from gdb:

  • #0 g_hash_table_lookup_node
    at ghash.c line 373
  • #1 g_hash_table_contains
    at ghash.c line 1324
  • #2 set_surface_is_on_output
    at wayland/meta-wayland-surface.c line 950
  • #3 g_closure_invoke
    at gclosure.c line 801
  • #4 signal_emit_unlocked_R
    at gsignal.c line 3627
  • #5 g_signal_emit_valist
    at gsignal.c line 3383
  • #6 g_signal_emit
    at gsignal.c line 3439
  • #7 wayland_output_destroy_notify
    at wayland/meta-wayland-outputs.c line 116
  • #8 g_hash_table_remove_all_nodes
    at ghash.c line 548
  • #9 g_hash_table_remove_all_nodes
    at ghash.c line 1425
  • #10 g_hash_table_remove_all
    at ghash.c line 1428
  • #11 g_hash_table_destroy
    at ghash.c line 1122
  • #12 meta_wayland_compositor_update_outputs
    at wayland/meta-wayland-outputs.c line 220
  • #13 on_monitors_changed
    at wayland/meta-wayland-outputs.c line 228
  • #14 ffi_call_unix64
    from /usr/lib/libffi.so.6
  • #15 ffi_call
    from /usr/lib/libffi.so.6
  • #16 g_cclosure_marshal_generic
    at gclosure.c line 1487
  • #17 g_closure_invoke
    at gclosure.c line 801
  • #18 signal_emit_unlocked_R
    at gsignal.c line 3627
  • #19 g_signal_emit_valist
    at gsignal.c line 3383
  • #20 g_signal_emit_by_name
    at gsignal.c line 3479
  • #21 meta_monitor_manager_rebuild_derived
    at backends/meta-monitor-manager.c line 1399
  • #22 meta_monitor_manager_kms_apply_configuration
    at backends/native/meta-monitor-manager-kms.c line 1084
  • #23 apply_configuration
    at backends/meta-monitor-config.c line 898
  • #24 meta_monitor_config_make_default
    at backends/meta-monitor-config.c line 1488
  • #25 g_closure_invoke
    at gclosure.c line 801
  • #26 signal_emit_unlocked_R
    at gsignal.c line 3627
  • #27 g_signal_emit_valist
    at gsignal.c line 3383
  • #28 g_signal_emit
    at gsignal.c line 3439
  • #29 monitor_event
    at gudev/gudevclient.c line 104
  • #30 g_main_dispatch
    at gmain.c line 3154
  • #31 g_main_context_dispatch
    at gmain.c line 3769
  • #32 g_main_context_iterate
    at gmain.c line 3840
  • #33 g_main_loop_run
    at gmain.c line 4034
  • #34 meta_run
    at core/main.c line 437
  • #35 main
    at main.c line 463

Comment 2 Jonas Ådahl 2015-09-24 00:11:58 UTC
Thanks for taking the time to report this.
This particular bug has already been reported into our bug tracking system, but we are happy to tell you that the problem has already been fixed in the code repository.

*** This bug has been marked as a duplicate of bug 755096 ***