https://bugs.kde.org/show_bug.cgi?id=516937
Dobry <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Latest Commit| |https://invent.kde.org/plas | |ma/plasma-workspace/-/commi | |t/0cc554a33cd496569f0fb1c9b | |a3a3f9261e627b7 Status|ASSIGNED |RESOLVED --- Comment #8 from Dobry <[email protected]> --- Git commit 0cc554a33cd496569f0fb1c9ba3a3f9261e627b7 by Dobry Nikolov. Committed on 03/03/2026 at 15:05. Pushed by ngraham into branch 'master'. shell: restore early destroyed guard for panel containments Commit 086ff5d8139eed36c25b3a7417f0eed8ec223739 removed a containmentAdded lambda from the constructor that connected QObject::destroyed -> panelContainmentDestroyed for every panel containment as soon as it was created. It reasoned that createWaitingPanels() already connects this signal, making it redundant. However, createWaitingPanels() only connects destroyed *after* successfully creating a PanelView for the containment. If a containment is freed before that point (e.g. its plugin is missing and libplasma issues deleteLater()), panelContainmentDestroyed is never connected, m_waitingPanels retains a dangling pointer, and the next dereference (e.g. in isScreenUiReady()) crashes with SIGSEGV. Restore the constructor connect so the guard is in place from the moment any panel containment is added, with no window of exposure. The connect inside createWaitingPanels() is now truly redundant and is removed. M +6 -2 shell/shellcorona.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/0cc554a33cd496569f0fb1c9ba3a3f9261e627b7 -- You are receiving this mail because: You are watching all bug changes.
