Skip to content

[Bug]: Extension crashes gnome-shell with SIGSEGV on GNOME 50 (disposed object access) #135

Description

@TonyBostonTB

Describe the bug

On GNOME Shell 50.1 with Resource Monitor v28, the extension causes gnome-shell to crash hard (SIGSEGV) by accessing already-disposed GObject instances. This kills the entire session — the user is dropped back to the login screen, which looks identical to a suspend failure.

This happened twice in the same day on the same machine, both times with the same stack.

Steps to reproduce

No specific action needed — the crash happens during normal use, apparently triggered by an async GIO callback firing after its associated UI objects have been destroyed.

Expected behavior

Extension handles disposed objects gracefully without crashing gnome-shell.

Actual behavior

gnome-shell crashes with SIGSEGV. From journalctl:

gnome-shell[4473]: Object Gio.DBusProxy (0x560e959a3810), has been already disposed — impossible to access it.
gnome-shell[4473]: Object St.Icon (0x560e94cfd3f0), has been already disposed — impossible to access it.
  #0  file:///var/home/tboston/.local/share/gnome-shell/extensions/Resource_Monitor@Ory0n/extension.js:1843
  #1  file:///var/home/tboston/.local/share/gnome-shell/extensions/Resource_Monitor@Ory0n/extension.js:1354
  #2  file:///var/home/tboston/.local/share/gnome-shell/extensions/Resource_Monitor@Ory0n/extension.js:518

gnome-shell[4473]: Object St.Label (0x560e975c8020), has been already disposed — impossible to access it.
  #0  file:///...Resource_Monitor@Ory0n/extension.js:1846
  #2  file:///...Resource_Monitor@Ory0n/extension.js:1845
  #3  file:///...Resource_Monitor@Ory0n/extension.js:1354
  #4  file:///...Resource_Monitor@Ory0n/extension.js:518

gnome-shell[4473]: Object St.BoxLayout (0x560e939a2740), has been already disposed — impossible to access it.
  #0  file:///...Resource_Monitor@Ory0n/panel/mainGui.js:375
  #2  file:///...Resource_Monitor@Ory0n/panel/mainGui.js:369
  #3  file:///...Resource_Monitor@Ory0n/extension.js:1689
  #4  file:///...Resource_Monitor@Ory0n/extension.js:1857
  #5  file:///...Resource_Monitor@Ory0n/extension.js:1354
  #6  file:///...Resource_Monitor@Ory0n/extension.js:518

Coredump stack trace (from coredumpctl info):

#0  gjs_value_from_gi_argument (libgjs.so.0 + 0x33377)
#1  Gjs::Arg::FallbackInOut::out (libgjs.so.0 + 0x3c4e2)
#2  Gjs::Function::invoke (libgjs.so.0 + 0x674c2)
#3  Gjs::Function::call (libgjs.so.0 + 0x67d09)
...
#15 async_fill_callback_wrapper (libgio-2.0.so.0)
#16 g_task_return_now (libgio-2.0.so.0)
#17 g_task_return (libgio-2.0.so.0)
#18 fill_async_callback (libgio-2.0.so.0)
#19 async_ready_callback_wrapper (libgio-2.0.so.0)

The crash originates in a GIO async callback completing after the extension's UI objects have been destroyed. The signal from libgio fires into a GJS closure that then tries to dereference already-freed St widgets, causing the SIGSEGV in gjs_value_from_gi_argument.

System information

Field Value
Extension version 28
GNOME Shell 50.1
OS Bluefin 44.20260512 (Universal Blue / Fedora 44 Silverblue)
Image bluefin-nvidia-open
Kernel 6.19.14-101.fc44.x86_64
GPU NVIDIA (discrete, open driver, Wayland, nvidia-drm atomic modesetting)
Session type Wayland

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions