Unplugging my laptop from its docking station intermittently crashes gnome-shell, which ends the whole Wayland session and all running apps. It has happened 5 times this month (Sep 10, 20, 21, 22, 29), each with the identical assertion.
System
- Zorin OS 18.1, Wayland session
- Lenovo ThinkPad X1 Yoga Gen 7, Intel Iris Xe (Alder Lake-P)
- Kernel 7.0.0-34-generic
- gnome-shell 46.0-0ubuntu6~24.04.14+zorin1
- libmutter-14-0 46.2-1ubuntu0.24.04.16+zorin1
- Docked with 2 external monitors (one is a Lenovo T32h-30)
- Zorin Tiling Shell extension 17.3 enabled, plus the default Zorin extensions and windowIsReady_Remover
Steps
- Work docked with laptop panel plus 2 external monitors.
- Unplug the dock.
- Sometimes, within a few seconds, the session crashes to the login screen.
Journal (today's crash)
08:25:53 gnome-shell: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
08:25:53 gnome-shell: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
(repeated several times)
08:25:59 gnome-shell: [tilingshell] [extension] building a tiling manager for each monitor
(3 monitors, then at 08:26:01 only monitor 0)
08:26:01 gnome-shell: (same two assertion warnings, repeated)
08:26:01 gnome-shell: Failed to find colord device xrandr-Lenovo Group Limited-T32h-30-V30B2K0Y
08:26:02 gnome-shell: libmutter:ERROR:../src/core/window.c:5957:meta_window_get_work_area_for_logical_monitor: assertion failed: (logical_monitor)
08:26:02 gnome-shell: Bail out! libmutter:ERROR:../src/core/window.c:5957:meta_window_get_work_area_for_logical_monitor: assertion failed: (logical_monitor)
08:26:05 systemd: org.gnome.Shell@wayland.service: Main process exited, code=dumped, status=6/ABRT
Backtrace of main thread (coredumpctl)
#4 g_assertion_message_expr (libglib-2.0.so.0)
#5 libmutter-14.so.0 + 0xeb5db
#6 libmutter-14.so.0 + 0xf2122
#7 libmutter-14.so.0 + 0x16a705
#8-10 libffi (ffi_call)
#11-13 libwayland-server.so.0 (wl_event_loop_dispatch)
#14 libmutter-14.so.0 + 0x14422b
#17 g_main_loop_run
#18 meta_context_run_main_loop
The abort happens while mutter dispatches a Wayland client request, for a window that apparently still points to a logical monitor that was just removed. I could not symbolize the libmutter frames because debug symbols for the +zorin1 build are not on debuginfod.ubuntu.com. If a dbgsym package exists, I am happy to provide a full backtrace. I have the core dump and can share it privately if useful.
Possibly related: the earlier assertion warnings come from meta_workspace_get_work_area_for_monitor with a stale monitor index, which the Tiling Shell extension calls when it rebuilds its per-monitor layouts. I have now disabled the extension and will report back whether undocking still crashes.
