debian-update v0.5.8 — Plasma Shell Crash Hotfix
🚨 debian-update v0.5.8 — Hotfix Release: Plasma Shell Crash Prevention
This urgent hotfix addresses a critical race condition that could cause KDE Plasma (plasmashell) to crash with a Segmentation Fault (SIGSEGV) when interacting with the system tray context menu.
🐛 The Issue & Root Cause
When the background update checker completed a scan and updated status.json, debian-update-tray immediately triggered self.menu.clear() to rebuild the QMenu actions.
If a user had the tray context menu or any of its submenus actively open on the desktop at that exact moment, clearing the active QAction objects destroyed the underlying DBus menu instances. When KDE Plasma's DBusMenuImporter and QtQml tried to handle mouse hover or timer events on those deleted objects, it referenced invalid memory addresses, resulting in an instant plasmashell crash.
🛠️ The Fix
- Visible Menu Protection: Added
if self.menu.isVisible(): returnprior to invokingself.menu.clear()inlib/debian-update-tray. - Deferred UI Refresh: If the context menu is currently open on screen, menu reconstruction is safely bypassed until the menu is closed, completely eliminating the asynchronous race condition and keeping Plasma rock solid.