Summary: | Plasmashell crashes in Plasma::Containment::lastScreen() after ShellCorona::createWaitingPanels() when unlocking screen after resuming from sleep while external screen is connected over HDMI | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | postix <postix> |
Component: | generic-crash | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | felix.schmidt.1, kde.whxeb, kdedev, nate, notmart |
Priority: | NOR | Keywords: | multiscreen |
Version: | 6.0.5 | ||
Target Milestone: | 1.0 | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/-/commit/434e13d01e0e9c07548e2a46c0be45050720bba7 | Version Fixed In: | 6.2.4 |
Sentry Crash Report: | |||
Attachments: | Full Stack Trace (Plasma 6.0.5) |
Description
postix
2024-05-28 11:21:43 UTC
Created attachment 169907 [details]
Full Stack Trace (Plasma 6.0.5)
From the sources of 6.0.5, it means that a panel in m_waitingPanels has been deleted before being created for (Plasma::Containment *cont : std::as_const(m_waitingPanels)) { // ignore non existing (yet?) screens int requestedScreen = cont->lastScreen(); <=== crash if (requestedScreen < 0) { requestedScreen = 0; } however during a sleep/resume cycle the containment itself should never be deleted, perhaps its view if the screen reported itself disconnecte, but not Containment* *** This bug has been marked as a duplicate of bug 478071 *** *** Bug 490541 has been marked as a duplicate of this bug. *** *** Bug 447773 has been marked as a duplicate of this bug. *** Confirming since there are multiple reports of the same crash A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4922 Git commit 0e933b4607e88a9fbd4db9dfd78b69d895cd0b8b by Marco Martin. Committed on 21/11/2024 at 09:30. Pushed by mart into branch 'master'. plasmashell: begin earlier to watch for panel destruction watch for panel containment destructionn earlier, since it's inserted in m_waitingPanels, for the unlikely event of a containment destruction before the panel is assigned a view M +13 -0 shell/shellcorona.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/0e933b4607e88a9fbd4db9dfd78b69d895cd0b8b Git commit 434e13d01e0e9c07548e2a46c0be45050720bba7 by Marco Martin. Committed on 21/11/2024 at 11:05. Pushed by mart into branch 'Plasma/6.2'. plasmashell: begin earlier to watch for panel destruction watch for panel containment destructionn earlier, since it's inserted in m_waitingPanels, for the unlikely event of a containment destruction before the panel is assigned a view (cherry picked from commit 0e933b4607e88a9fbd4db9dfd78b69d895cd0b8b) Co-authored-by: Marco Martin <notmart@gmail.com> M +13 -0 shell/shellcorona.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/434e13d01e0e9c07548e2a46c0be45050720bba7 |