NOTE: this comment was written by an AI (Claude), on behalf of the reporter, 
from their logs and core dump.
----
New crash with a core dump, inspected with dbgsym installed. It confirms the 
connector_state==NULL hypothesis from comment #4, and it contradicts the PCD 
and wake-source theory from my earlier comments.

Versions: libmutter-14-0 46.2-1ubuntu0.24.04.18, gnome-shell
46.0-0ubuntu6~24.04.17, kernel 7.0.0-42-generic.

Crash site, libmutter-14.so.0 + 0x17d7f6 (meta-output-kms.c:107):

  mov  0x18(%rdi),%rdi
  call meta_kms_connector_get_current_state
  mov  0x40(%rax),%rbx    <-- SIGSEGV, rax = 0

gdb also shows connector_state = 0x0. So
meta_kms_connector_get_current_state() really does return NULL here, and
meta_output_kms_read_edid() dereferences it unchecked. The caller is
again meta_monitor_manager_handle_get_resources, i.e. a GetResources
D-Bus call. I could not identify the client.

Timeline (Nov 5):

  17:44:01  logind: "The system will suspend now!"
  17:44:02  USB disconnect of all the dock's devices (apparently unplugged)
  17:44:02  gnome-shell: "[atomic] Failed to disable device '/dev/dri/card1': 
drmModeAtomicCommit: Permission denied"
  17:44:04  lid closed, PM: suspend entry (deep)
  18:44:10  PM: suspend exit (RTC alarm, on battery, dock absent)
  18:44:11  gnome-shell SIGSEGV (time from the core dump, 1 s resolution)

Possible explanation, not proven: the dock went away after mutter had
already lost DRM control for the suspend, so it may have kept an output
whose connector no longer has a state. The first GetResources after
resume then hits it.

Corrections to my earlier comments:

- PCD is not required. This resume logged USBSTS 0x401, with no PCD bit. A 
crash on Oct 7 also had 0x401, with no dock involved.
- Disabling the wake sources does not prevent the crash. XHCI, TXHC, TDM0 and 
TRP0 are currently disabled, and they were reported as disabled for the earlier 
crash too.

Since the Oct 7 crash happened without a dock, a dock removed during
suspend entry can't be the only path to the NULL state. Whatever the
path, a NULL check on connector_state in meta_output_kms_read_edid()
looks like it would avoid losing the whole session.

The core dump is still available if specific values would help.

-- 
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 resume 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