Additional data point: a full mutter-internal stack trace, recovered
from a retained core dump (Ubuntu 24.04, libmutter-14-0
46.2-1ubuntu0.24.04.16, gnome-shell 46.0-0ubuntu6~24.04.15, X11 session,
kernel 6.8.0-124, single DisplayPort monitor, no NVIDIA).
#5 meta_window_get_work_area_for_logical_monitor (window=...,
logical_monitor=NULL, area=...)
src/core/window.c:5957 <- g_assert
(logical_monitor)
#6 meta_window_get_work_area_current_monitor (window=..., area=...)
src/core/window.c:5992
#7 meta_window_unmaximize (directions=..., window=0x5d29e0fa90b0)
src/core/window.c:3243
#8 meta_window_unmaximize (window=0x5d29e0fa90b0, directions=...)
src/core/window.c:3215
#9 meta_window_x11_client_message (event=..., window=...)
src/x11/window-x11.c:3232
#10 handle_other_xevent (x11_display=..., event=...)
src/x11/events.c:1638
#11 meta_x11_display_handle_xevent (...)
src/x11/events.c:1930
#12 xevent_func (...)
src/x11/events.c:1969
#13 meta_x11_event_source_dispatch (...)
src/x11/meta-x11-event-source.c:62
#14 g_main_context_dispatch #16 g_main_loop_run #17 meta_context_run_main_loop
What the core says at the moment of the abort:
* window->monitor == NULL is the proximate cause, and
meta_window_get_work_area_current_monitor() passes it straight through
(meta_window_get_work_area_for_logical_monitor (window, window->monitor,
area)). I checked current upstream main (src/core/window.c:6316) - still no
NULL guard there either.
* It is NOT the unmanage path: window->workspace != NULL, window->mapped == 1,
window->unmanaging == 0. In meta_window_unmanage() the monitor is only cleared
after g_assert (window->workspace == NULL) (window.c:1516 -> 1535), so that
route is excluded here.
* The whole call path is inside mutter: no JS/extension frame is involved (the
gjs/mozjs frames sit below g_main_loop_run, i.e. they are just the main-loop
entry). So this is the "assertion still reachable after the 46.1 fix" case, not
the Tiling Assistant path.
* Trigger input is an ordinary X11 client message: _NET_WM_STATE requesting
un-maximize for a window whose window->monitor is NULL
(window-x11.c:3222-3235). The offending window belongs to an Electron/CEF app
(Xiaomi miWork, title "帧负载调频测试---性能 - 小米办公Pr"); the sender itself cannot be
identified, since X11 ClientMessages carry no sender identity.
* Not memory related: VmRSS 185 MB, VmHWM 409 MB at abort time; no kernel OOM
around it.
* Recurred 4 times within 3 weeks on this machine (2026-09-29 10:08, 09-30
10:13, 10-02 10:33, 10-14 08:15). The failing line moved 5937 -> 5957 after
46.2-1ubuntu0.24.04.16 was installed, i.e. that SRU did not address it. No
drm/DPMS/RandR events were logged near any of the crashes.
Suggestion: bail out gracefully when there is no logical monitor - e.g.
return early / fall back to the current or primary logical monitor in
meta_window_get_work_area_current_monitor(), and/or ignore _NET_WM_STATE
maximize/unmaximize requests for windows without a logical monitor. A
client WM state message should never be able to abort the compositor.
Reproducing the symbolization, in case it helps others
(debuginfod.ubuntu.com is unreachable from here and the ddebs pool only
keeps the newest build, but Launchpad keeps old dbgsym files):
curl -L -O
"https://launchpad.net/ubuntu/+archive/primary/+files/libmutter-14-0-dbgsym_46.2-1ubuntu0.24.04.16_amd64.ddeb"
apport-unpack /var/crash/_usr_bin_gnome-shell.1000.crash /tmp/gs/
dpkg -x libmutter-14-0-dbgsym_*.ddeb /tmp/dbg/
gdb -batch -q -iex "set debug-file-directory /tmp/dbg/usr/lib/debug" -ex "bt
20" -ex "frame 8" -ex "p window->monitor" /usr/bin/gnome-shell /tmp/gs/CoreDump
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2097003
Title:
gnome-shell crashed with SIGABRT
[libmutter:ERROR:../src/core/window.c:5937:meta_window_get_work_area_for_logical_monitor:
assertion failed: (logical_monitor)]
To manage notifications about this bug go to:
https://bugs.launchpad.net/gnome-shell/+bug/2097003/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs