Bug: GNOME 51 crash - metaWindow.set_unmaximize_flags() causes Mutter SIGSEGV on window close
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, linux
- Área
- desktop, operating-systems
Línea de trabajo
Empieza en lib/extension/window.js e inspecciona move(metaWindow, rect) y la callback window-create-queue, donde el issue identifica las llamadas que provocan el fallo. Comprueba el estado de maximización de la ventana antes de desmaximizarla, siguiendo la solución propuesta en el issue. Reproduce el fallo cerrando una ventana en mosaico en GNOME Shell 51; se considera terminado cuando la sesión ya no se bloquea.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Issue/Bug Description/Video Capture/Screenshots
On GNOME 51 (Fedora 45 Rawhide / libmutter-51), closing a window causes gnome-shell to crash with a segmentation fault (SIGSEGV), immediately terminating the user session and dropping the user back to GDM / login screen.
Root Cause Analysis
In lib/extension/window.js, move(metaWindow, rect) and the window-create-queue event callback unconditionally invoke metaWindow.set_unmaximize_flags(Meta.MaximizeFlags.BOTH); followed by metaWindow.unmaximize();.
In Mutter 51 (GNOME 51), invoking set_unmaximize_flags during window re-tiling/destruction triggers a crash inside meta_window_update_monitor:
Stack trace of thread 27746:
#0 0x00007fe51d1bff16 meta_window_update_monitor (libmutter-51.so.0 + 0x1bff16)
#1 0x00007fe51d24f30b meta_window_wayland_update_main_monitor (libmutter-51.so.0 + 0x24f30b)
#2 0x00007fe51d1bff51 meta_window_update_monitor (libmutter-51.so.0 + 0x1bff51)
#3 0x00007fe51d1c101b meta_window_move_resize_internal (libmutter-51.so.0 + 0x1c101b)
#4 0x00007fe51d1bc6e9 meta_window_set_unmaximize_flags (libmutter-51.so.0 + 0x1bc6e9)
#5 0x00007fe51c4e6056 ffi_call_unix64 (libffi.so.8 + 0xb056)
#8 0x00007fe51d69c3f4 _ZN3Gjs8Function6invoke... (libgjs.so.0 + 0x1303f4)
Proposed Fix
Only attempt to unmaximize if the window is actually currently horizontally or vertically maximized, and avoid calling set_unmaximize_flags:
// In move(metaWindow, rect) and window-create-queue:
try {
if (metaWindow.maximized_horizontally || metaWindow.maximized_vertically) {
metaWindow.unmaximize(Meta.MaximizeFlags.BOTH);
}
} catch (e) {
// ignore
}
Testing this patch on Fedora 45 / GNOME Shell 51.1 completely resolves the crash when closing tiled windows.
Steps to reproduce
- Enable Forge on GNOME Shell 51.
- Open two or more tiled windows (e.g. terminals).
- Close one of the windows (e.g. using Super+Q or Alt+F4).
gnome-shellcrashes with SIGSEGV inmeta_window_set_unmaximize_flags, logging out the user.
Distribution and Linux version
NAME="Fedora Linux"
VERSION="45 (Workstation Edition)"
ID=fedora
VERSION_ID=45
PRETTY_NAME="Fedora Linux 45 (Workstation Edition)"
Linux fedora 7.2.15-300.fc45.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Nov 1 16:11:16 UTC 2026 x86_64 GNU/Linux
Journal Logs from the last hour
Nov 07 15:31:25 fedora systemd-coredump[32773]: Process 27746 (gnome-shell) of user 1000 dumped core.
Stack trace of thread 27746:
#0 0x00007fe51d1bff16 meta_window_update_monitor (libmutter-51.so.0 + 0x1bff16)
#1 0x00007fe51d24f30b meta_window_wayland_update_main_monitor (libmutter-51.so.0 + 0x24f30b)
#2 0x00007fe51d1bff51 meta_window_update_monitor (libmutter-51.so.0 + 0x1bff51)
#3 0x00007fe51d1c101b meta_window_move_resize_internal (libmutter-51.so.0 + 0x1c101b)
#4 0x00007fe51d1bc6e9 meta_window_set_unmaximize_flags (libmutter-51.so.0 + 0x1bc6e9)
GNOME Shell version
GNOME Shell 51.1
Forge version
Version 89 (gnome-shell-extension-forge-89-4.fc45)
Other installed/enabled extensions
[email protected] (Forge)
[email protected] (Background Logo)
[email protected] (Launch New Instance)
Monitor Setup
1 x 1080p laptop display (eDP-1, 1920x1080 @ 60Hz)
Other Notes
Also also noting that "51" is not yet listed in metadata.json's shell-version array.
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.3k
- Forks
- 112
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 forge-ext/forge
-
Bug: Changing a setting while Forge is disabled (e.g. screen locked) throws errors; old handlers keep runningPosiblemente ocupada @mattchristenson la tomó hace 38 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
-
Bug: Windows overlap while resizing, until slower apps catch upPosiblemente ocupada @mattchristenson la tomó hace 39 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
-
Bug: Tabbed and stacked groups that contain a split show windows on top of each otherPosiblemente ocupada @mattchristenson la tomó hace 39 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
-
Bug: Windows in a stacked group are hidden without a tracePosiblemente ocupada @mattchristenson la tomó hace 39 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Bug: Toggling stacked or tabbed layout off changes the container's split directionPosiblemente ocupada @mattchristenson la tomó hace 39 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
Todos los issues de forge-ext/forge
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Fei2411/DeepSeek-Bot#1113 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
arfct/timezone.fyi#19 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
fastify/fastify-http-proxy#493 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
eliasstravik/herdr-projects#785 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
tensorflow/tfjs#8754 ·