Bug: GNOME 51 crash - metaWindow.set_unmaximize_flags() causes Mutter SIGSEGV on window close
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, linux
- Ambito
- desktop, operating-systems
Direzione di ricerca
Inizia da lib/extension/window.js ed esamina move(metaWindow, rect) e il callback window-create-queue, dove l’issue identifica le chiamate che causano il crash. Controlla lo stato di massimizzazione della finestra prima di rimuoverne la massimizzazione, seguendo la correzione proposta nell’issue. Riproduci il problema chiudendo una finestra affiancata su GNOME Shell 51; il lavoro è completato quando la sessione non va più in crash.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- JavaScript
- Stelle
- 1.3k
- Fork
- 112
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di forge-ext/forge
-
Bug: Changing a setting while Forge is disabled (e.g. screen locked) throws errors; old handlers keep runningForse già presa @mattchristenson l’ha presa 38 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Bug: Windows overlap while resizing, until slower apps catch upForse già presa @mattchristenson l’ha presa 39 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
-
Bug: Tabbed and stacked groups that contain a split show windows on top of each otherForse già presa @mattchristenson l’ha presa 39 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
-
Bug: Windows in a stacked group are hidden without a traceForse già presa @mattchristenson l’ha presa 39 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Bug: Toggling stacked or tabbed layout off changes the container's split directionForse già presa @mattchristenson l’ha presa 39 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 30/100
Tutte le issue di forge-ext/forge
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
arfct/timezone.fyi#19 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
fastify/fastify-http-proxy#493 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
tensorflow/tfjs#8754 ·
-
Marketplace time-zone issueApertabug main ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openhab/openhab-webui#4671 ·
I maintainer di solito rispondono entro 1 giorno
-
scratch-paint's npm test does not run lint, so CI never lints paint; one lint error is currently in developForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
scratchfoundation/scratch-editor#754 ·
I maintainer di solito rispondono entro 1 giorno