Skip to content

## Bug Report: Extension crashes GNOME Shell with null panel_box error #823

@knipp30

Description

@knipp30

Bug Report: Extension crashes GNOME Shell with null panel_box error

Environment:

  • Extension version: 70
  • GNOME Shell version: 49.2
  • Distribution: Fedora Linux 43

Description:
The extension causes repeated GNOME Shell crashes due to a null pointer dereference when attempting to access panel_box.name. This occurs during the panel blur initialization process.

Symptoms:

  • GNOME Shell crashes and restarts without warning
  • Wallpaper resets to solid fallback color after crash
  • Active network connections (e.g., Input Leap/Barrier) disconnect

Error:
JS ERROR: TypeError: can't access property "name", panel_box is null
blur_panel@file:////.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js:133:13
maybe_blur_panel@file:///
/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js:126:18
blur_existing_panels@file:////.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js:82:18
enable@file:///
/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js:52:14
reset/<@file:///~/.local/share/gnome-shell/extensions/blur-my-shell@aunetx/components/panel.js:70:30
setTimeout/source<@resource:///org/gnome/gjs/modules/esm/_timers.js:72:9
_initializeUI/<@resource:///org/gnome/shell/ui/main.js:279:14

Followed by:
Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs.
The offending signal was destroy on StWidget.

Notes:
Frequency:
The error occurred 6 times over a 2-day period, indicating it happens regularly during normal usage.

Root Cause:
In panel.js:133, the code attempts to access panel_box.name without first checking if panel_box is null. The null reference likely occurs when a panel is being destroyed or hasn't been fully initialized.

Workaround:
Disabling the extension stops the crashes immediately and restores normal behavior.

Suggested Fix:
Add null check before accessing panel_box properties in the blur_panel function (panel.js:133).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions