Noble is also missing a closely related upstream fix in the same family,
which crashes gnome-shell through a different call: the untrapped
XSendEvent() of SelectionNotify replies.

Upstream: mutter commit df48348452407c58e4681c23c91fc174efbf4fed
"x11: Trap X errors for a couple more XSendEvent calls"
(closes https://gitlab.gnome.org/GNOME/mutter/-/issues/4489).
It adds error traps in send_selection_notify() (src/x11/meta-x11-selection.c)
and process_selection_request() (src/x11/events.c). It is in mutter 50.0+
and was backported to the gnome-49 branch (2026-01-14), but not to gnome-46.

Affected: libmutter-14-0 46.2-1ubuntu0.24.04.16 / gnome-shell
46.0-0ubuntu6~24.04.15 (current noble-updates), Wayland session.

Symptom: gnome-shell SIGTRAP, whole session lost:
  The error was 'BadWindow (invalid Window parameter)'.
  (Details: ... error_code 3 request_code 25 (core protocol) minor_code 0)
One machine had 5 such crashes between 2026-08-20 and 2026-10-03.

Trigger: an X11 client under Xwayland (here the RustDesk 1.4.9 client's
clipboard listener, which reads CLIPBOARD through arboard's X11 backend
even with RustDesk's clipboard sync disabled, so it cannot be avoided on
the client side) requests CLIPBOARD, gives up after its 4 s
timeout and destroys its requestor window. When mutter answers late, the
SelectionNotify is sent to a dead window without an error trap. The
asynchronous BadWindow then surfaces at the next XSync() outside any trap
and mtk_x_error() calls g_error().

Backtrace (gdb, libmutter-14-0-dbgsym 46.2-1ubuntu0.24.04.16):
  #4  display_error_event () at ../mtk/mtk/mtk-x11-errors.c:116
  #5  mtk_x_error () at ../mtk/mtk/mtk-x11-errors.c:139
  #6  _XError () from libX11.so.6
  #9  _XReply () from libX11.so.6
  #10 XSync () from libX11.so.6
  #11 meta_x11_selection_output_stream_notify_selection () at 
../src/x11/meta-x11-selection-output-stream.c:89
  #12 meta_x11_selection_output_stream_perform_flush () at 
../src/x11/meta-x11-selection-output-stream.c:270
  #13 meta_x11_selection_output_stream_flush_async () at 
../src/x11/meta-x11-selection-output-stream.c:499
XErrorEvent: resourceid 0x1400000, error_code 3, request_code 25.
A second core, from 2026-09-25, has the same resourceid and request
code; there the error surfaced in meta_prop_get_values() -> XSync().

Could df483484 please be included in the noble SRU for this bug? If you
prefer a separate bug for it, I can file one.

** Bug watch added: gitlab.gnome.org/GNOME/mutter/-/issues #4489
   https://gitlab.gnome.org/GNOME/mutter/-/issues/4489

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2145049

Title:
  Mutter 46.2 missing X11 error trap fixes for XReparentWindow
  (BadWindow crash in gnome-shell)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2145049/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to