Public bug reported:

NOTE: this text is AI generated
----
`gnome-shell` reliably segfaults in `meta_output_kms_read_edid()` shortly after
resuming from suspend (S3), killing the entire Wayland session. It has happened
twice, both times at the **same code offset** (`libmutter-14.so.0 + 0x17d816`),
so it is not a random memory error.

The crash is reached from an **external D-Bus call** to
`org.gnome.Mutter.DisplayConfig.GetResources`, served while the KMS outputs are
still being re-probed after resume.

### Versions

```
mutter / libmutter-14-0   46.2-1ubuntu0.24.04.16
gnome-shell               46.0-0ubuntu6~24.04.14
kernel                    7.0.0-31-generic (HWE)
Ubuntu                    24.04.4 LTS (noble)
session                   Wayland
```

### Hardware

```
GPU 0   Intel TigerLake-H GT1 [UHD Graphics]   [8086:9a60]  ← drives all outputs
GPU 1   NVIDIA TU117GLM [T600 Mobile]          [10de:1fba]  ← PRIME offload only
driver  nvidia 580.173.02
outputs eDP-1 (internal panel) + DP-1 (external monitor via Thunderbolt 4 dock)
```

Laptop with a Thunderbolt 4 controller at PCI `00:0d.0` hosting the
dock.

### Steps to reproduce

1. Suspend the laptop (`systemctl suspend` or `suspend-then-hibernate`), with an
   external monitor attached through a Thunderbolt dock — or attached while the
   machine is resuming.
2. Resume.
3. `gnome-shell` segfaults ~160 ms after userspace is unfrozen. The session is
   terminated and the user is dropped back to  all
   running applications are lost.

Not every resume crashes: a 14-second suspend
15-hour one did. The common factor appears to
controller powers down, and therefore how muchs on
resume.

### Symbolised backtrace

Resolved with `addr2line` against `libmutter-14.16`
(the trace recorded in the journal only had of
afterwards, so `coredumpctl info` still shows

```
#0  meta_output_kms_read_edid                 0 + 0x17d816)
#1  meta_monitor_manager_handle_get_resources             (libmutter-14.so.0 + 
0x9cc4a)
#2  _g_dbus_codegen_marshal_BOOLEAN__OBJECT   -config.c:241
#3  g_closure_invoke
#4  g_signal_emitv
#5  _meta_dbus_display_config_skeleton_handle_method_call 
meta-dbus-display-config.c:3506
#6  (libgio-2.0.so.0 + 0x129df3)
#7  (libgio-2.0.so.0 + 0x10dc08)
#8  g_main_loop_run
#9  meta_context_run_main_loop                0 + 0xd50aa)
```

### Faulting instruction

The kernel logged the code bytes around the fa

```
Code: ... 48 8b 7f 18   e8 aa ff ff ff   <48 8
            mov rdi,[rdi+0x18]   call …   mov
```

A call returns **NULL in `rax`** and the retur0x40`
without being checked — hence `segfault at 40`

Note that the very next instruction (`test rbxd
value for NULL. So a NULL check exists, but itd
rather than on the pointer that was returned.

Kernel message:

```
gnome-shell[…]: segfault at 40 ip …15f7d816 sp
  in libmutter-14.so.0.0.0[17d816,…+167000]
```

### Timeline (kernel monotonic clock)

```
[29860.346]  xhci_hcd 0000:00:0d.0: xHC error in resume, USBSTS 0x411, Reinit
[29860.346]  usb usb1/usb2: root hub lost powe
[29861.006]  Restarting tasks: Starting
[29861.006]  usb 3-3: USB disconnect, device n
[29861.013]  Restarting tasks: Done
[29861.120]  usb 3-3: new full-speed USB devic
[29861.137]  psmouse serio1: synaptics: querie
[29861.169]  psmouse serio1: synaptics: querie
[29861.175]  gnome-shell segfault
[29861.233]  usb 2-1: new SuperSpeed USB devic crash)
```

The crash lands in the middle of device re-enunput
devices are re-probed, and **before** the dock's own devices appear — so
`GetResources` is being served while output/KM

### Impact

The whole Wayland session dies and every open
requires a fresh login. On a laptop that is re

### What was ruled out

- **Not a regression from a recent update.** The same kernel (7.0.0-31) and the
  same mutter (46.2-…16, released 2026-06-17) clean
  reinstall of the machine, on which the crash
- **Not a third-party GNOME extension.** The f
  installation of the only two third-party ext
- **Not local systemd sleep hooks.** They run rash.
- **Not the dock's own re-enumeration.** Its devices appear after the crash.

### Related but distinct

- LP #2148655 — same class (NULL deref on monime)
  but a different function (`meta_logical_monitter
  50.x / Ubuntu 26.04. Fixed in 50.1-0ubuntu2.1; no equivalent fix exists for
  46.2 in noble.
- mutter MR !172 — adds a NULL check when `drmULL.

** Affects: mutter (Ubuntu)
     Importance: Undecided
         Status: New

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

Title:
  gnome-shell crashed with SIGSEGV in meta_output_kms_read_edid when
  GetResources is called during resu me from suspend

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


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

Reply via email to