Summary: | Plasma shell crashes when changing to desktop view | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Edward Kigwana <ekigwana> |
Component: | Desktop Containment | Assignee: | Sebastian Kügler <sebas> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | albma, bugseforuns, christiandehne, daniel-other+kdebug, darkwingbuck13, kde, nate, notuxius, plasma-bugs, PTrenholme, rikmills, wazhai |
Priority: | NOR | ||
Version: | master | ||
Target Milestone: | 1.0 | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/plasma-framework/2785916d01b26f5e9747bdf38428adce0a121842 | Version Fixed In: | |
Sentry Crash Report: |
Description
Edward Kigwana
2018-03-10 01:37:44 UTC
crash reproducible on Arch Linux when I change desktop layout to desktop or folder. plasma is not automatically restarted, I get a black screen and need to restart plasma manually. Looks related to https://bugs.kde.org/show_bug.cgi?id=390957 Also reported in: https://bugs.launchpad.net/bugs/1759328 *** Bug 392746 has been marked as a duplicate of this bug. *** So from thet duplicate, we can add that this occurs in: Application: plasmashell (5.12.4) Qt Version: 5.10.0 Frameworks Version: 5.44.0 Operating System: Linux 4.4.120-45-default x86_64 Distribution: "openSUSE Leap 42.3" Writing the top backtrace out in words: frame 9: containment(an applet subclass) gets deleted frame 8: that deletes it's qobject children frame 6: that deletes it's ContainmentInterface (the QML exposed containment side) frame 3: that accesses the applet, which we delete in frame 9 Can do a simple QPointer guard, but that's just masking a more significant problem. This crash shouldn't happen because: Applet::~Applet should run between frames 9 and 8, AppletPrivate::~Private runs delete script, delete script *should* delete the ContainmentInterface. So that means someone somewhere is calling containmentInterface->setParent(theContainment) Find that and we find our crash. src/plasmaquick/containmentview.cpp: oldGraphicObject->setParent(containment); exactly what I said it would be, and run when you switched from desktop to folder view Will replace with something else *** Bug 392939 has been marked as a duplicate of this bug. *** Git commit 2785916d01b26f5e9747bdf38428adce0a121842 by David Edmundson. Committed on 10/04/2018 at 13:38. Pushed by davidedmundson into branch 'master'. Don't alter memory management to hide an item Summary: The original owner of a graphics item is the declarative applet script which is owned and deleted by the applet. Reparenting the containmentquickitem to the containment doesn't really solve anything useful, we were originally effectively owned by the containment(an applet subclass) not the view anyway. This code also accidentally moves the destruction of the applet from being in ::~Applet to being in ::~QObject of the relevant containment. This causes a big problem if the AppletQuickItem tries to access the applet in it's own destructor. The applet object still exists, but use of Applet member variables is not valid. The new preloading code does this, leading to a crash. Test Plan: Changed desktop to folder twice Changed activities twice Reviewers: #plasma, mart Reviewed By: #plasma, mart Subscribers: rikmills, #frameworks Tags: #frameworks Differential Revision: https://phabricator.kde.org/D12064 M +2 -5 src/plasmaquick/containmentview.cpp https://commits.kde.org/plasma-framework/2785916d01b26f5e9747bdf38428adce0a121842 *** Bug 393041 has been marked as a duplicate of this bug. *** *** Bug 393928 has been marked as a duplicate of this bug. *** This just happened to me on Manjaro 19.0.0 DE: KDE 5.66.0 / Plasma 5.17.5 Kernel: x86_64 Linux 5.5.2-1-MANJARO probably you are affected by bug 416260 *** Bug 416260 has been marked as a duplicate of this bug. *** *** Bug 418359 has been marked as a duplicate of this bug. *** After getting quite a few reports in rapid succession, we have not gotten any duplicates following a potential fix via code change. Is anyone still experiencing this? I am not. Frameworks: 5.78.0 Plasmashell: 5.20.80 QT: 5.15.2 I don't have this issue anymore. Phew, thanks! No recent problem. |