cinnamon-session aborts on g_variant_unref(NULL) when an Electron client (Obsidian) crashes mid-DBus dispatch — kicks user to LightDM greeter
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- c
- Área
- desktop-dev
Línea de trabajo
Comienza en las rutas de cinnamon-session-binary que gestionan la señal name-lost del nombre org.gnome.SessionManager y la ruta de cierre de end-session-dialog; el issue no proporciona ningún archivo de origen ni ubicación de prueba. Reproduce o rastrea un cliente DBus registrado cuya terminación no sea limpia mientras observas journalctl. Se considera completado cuando el fallo del cliente se registra o se trata como recuperable y la sesión de Cinnamon permanece activa sin abortos críticos de GLib.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Body (paste into "Add a description")
Summary
When an Electron-based DBus client (Obsidian 1.12.7, bundled Chromium) crashes
with an int3 trap inside dbus_connection_dispatch, cinnamon-session-binary
itself aborts on g_variant_unref: assertion 'value != NULL' failed and the
entire user session is torn down — LightDM returns to the greeter and every
X-session child process (terminals, multiplexers, editors, IDEs) is killed.
The session manager should log the misbehaving client and continue, not abort.
Reproduced 4 times in 1 hour on 2026-05-10 (13:05, 13:08, 13:24, 13:57)
plus once on 2026-05-08 with the identical signature.
Environment
| Distro | Linux Mint 22.2 (Zara) |
| Session | X11 / X-Cinnamon |
cinnamon-session |
6.4.0+xia |
cinnamon |
6.4.8+xia |
| Display manager | LightDM |
| Kernel | 6.8.0-110-generic |
| GPU | AMD Radeon RX 7900 XT (amdgpu) |
| Triggering app | Obsidian 1.12.7 (Electron / Chromium) |
Crash signature (journalctl, one occurrence)
May 10 13:57:38 kernel: traps: ThreadPoolSingl[1497465] trap int3 ip:5af2bf41433e
sp:7c4423df8440 error:0 in obsidian[5af2badd7000+923e000]
May 10 13:57:38 cinnamon-session-binary: CRITICAL: Unable to start session:
Lost name on bus: org.gnome.SessionManager
May 10 13:57:38 cinnamon-session-binary: GLib-CRITICAL: g_variant_unref:
assertion 'value != NULL' failed
May 10 13:57:38 cinnamon-session-binary: CRITICAL: Unable to close Cinnamon's
end session dialog: The connection is closed
May 10 13:57:38 cinnamon-session-binary: GLib-GObject-CRITICAL: g_object_unref:
assertion 'G_IS_OBJECT (object)' failed
May 10 13:57:38 lightdm: pam_unix(lightdm:session): session closed for user
May 10 13:57:38 systemd-logind: Session c8 logged out. Waiting for processes to exit.
May 10 13:57:39 systemd-coredump: Process 1497452 (obsidian) of user 1000 dumped core.
May 10 13:57:39 lightdm: pam_unix(lightdm-greeter:session): session opened for user lightdm
May 10 13:57:39 systemd-logind: New session c9 of user lightdm.
The Obsidian coredump confirms the crashing thread was inside DBus dispatch
when it hit the int3:
Stack trace of thread 1497465 (ThreadPoolSingl):
#0..#3 (obsidian internal)
#4 dbus_connection_dispatch (libdbus-1.so.3 + 0x181b9)
#5..#13 (obsidian internal)
#14 start_thread (libc.so.6 + 0x9caa4)
Expected behaviour
A single misbehaving DBus client crashing should not be able to take down
cinnamon-session and end the user session. The g_variant_unref(NULL) is a
defensive bug inside cinnamon-session: somewhere in the
Lost name on bus / end-session-dialog cleanup path, a GVariant* is unref'd
without a null check after the client connection is already closed.
Actual behaviour
cinnamon-session aborts → systemd-logind closes the session → LightDM greeter →
all running work in the X session is lost (terminal multiplexers, editors,
running builds, unsaved buffers).
Reproduction
The triggering Obsidian/Chromium crash itself is rare and not deterministic.
However, the cinnamon-session vulnerability should be reproducible synthetically
by killing any DBus-registered session client uncleanly mid-method-call —
for example kill -SEGV <pid> of a session-registered client during an
EndSessionResponse exchange, or while the session manager is processing
org.gnome.SessionManager name loss.
Suggested fix
Audit the Lost name on bus / end-session-dialog cleanup paths in
cinnamon-session for unchecked g_variant_* and g_object_* calls. Add
g_return_if_fail (value != NULL) guards. Treat connection is closed as a
recoverable warning, not a fatal session-ending event.
Relevant search points (likely candidates):
- whatever handles the
name-lostsignal onorg.gnome.SessionManager - the dialog-close path that emits
Unable to close Cinnamon's end session dialog
Workaround currently applied locally (not a fix)
Launch Obsidian with --disable-gpu --disable-gpu-compositing --disable-software-rasterizer. This eliminates the Chromium GPU-process path
that trips the int3 — i.e. it removes the trigger but does not address the
cinnamon-session fragility. Any other Electron app crashing mid-DBus will
reproduce the same kickout.
- Lenguaje dominante
- C
- Estrellas
- 30
- Forks
- 41
- Merge medio
- 22 d 3 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de linuxmint/cinnamon-session
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
linuxmint/cinnamon-session#218 ·
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
linuxmint/cinnamon-session#217 ·
-
Intermittent reboot/poweroff failure from active Cinnamon X11 session; logout-first reboot succeedsAbiertobug
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
linuxmint/cinnamon-session#216 · 3 comentarios ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 15/100
linuxmint/cinnamon-session#200 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
linuxmint/cinnamon-session#196 · 1 comentario ·
Todos los issues de linuxmint/cinnamon-session
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
sandialabs/seacas#945 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
ARM-software/sysarch-acs#556 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
netdata/netdata#24062 · 1 comentario ·
Los mantenedores suelen responder en 1 día