Summary: | Switching back from simple menu to Kickoff crashes Plasma in PlaceholderModel::reset() | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | medin <med.medin.2014> |
Component: | Application Launcher (Kickoff) | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | REPORTED --- | ||
Severity: | crash | CC: | kde, mikel5764, nate, noahadvs |
Priority: | NOR | ||
Version: | 5.24.2 | ||
Target Milestone: | 1.0 | ||
Platform: | Manjaro | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
medin
2022-03-04 10:50:52 UTC
Oh, those debug symbols are super helpful.
> #6 0x00007f480bf4a870 in PlaceholderModel::reset() (this=0x5641c7a11740) at /usr/src/debug/plasma-workspace-5.24.2/applets/kicker/plugin/placeholdermodel.cpp:231
> #7 PlaceholderModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x5641c7a11740, _c=<optimized out>, _id=<optimized out>, _a=0x7ffc7ce11650)
> at /usr/src/debug/build/applets/kicker/kickerplugin_autogen/7RBZBFH7CH/moc_placeholdermodel.cpp:116
> #8 0x00007f4839968a1f in () at /usr/lib/libQt5Core.so.5
> #9 0x00007f4839968c24 in QObject::destroyed(QObject*) () at /usr/lib/libQt5Core.so.5
> #10 0x00007f483995f1c4 in QObject::~QObject() () at /usr/lib/libQt5Core.so.5
> #11 0x00007f480bf67f08 in KAStatsFavoritesModel::Private::~Private() (this=0x5641bc8168f0, this=<optimized out>)
> at /usr/src/debug/plasma-workspace-5.24.2/applets/kicker/plugin/kastatsfavoritesmodel.cpp:56
> #12 KAStatsFavoritesModel::Private::~Private() (this=0x5641bc8168f0, this=<optimized out>)
> at /usr/src/debug/plasma-workspace-5.24.2/applets/kicker/plugin/kastatsfavoritesmodel.cpp:56
> #13 0x00007f480bf67c01 in KAStatsFavoritesModel::~KAStatsFavoritesModel() (this=0x5641c7a11740, this=<optimized out>)
> at /usr/src/debug/plasma-workspace-5.24.2/applets/kicker/plugin/kastatsfavoritesmodel.cpp:451
> #14 KAStatsFavoritesModel::~KAStatsFavoritesModel() (this=0x5641c7a11740, this=<optimized out>)
> at /usr/src/debug/plasma-workspace-5.24.2/applets/kicker/plugin/kastatsfavoritesmodel.cpp:452
This also happens with: Operating System: Manjaro Linux KDE Plasma Version: 5.25.80 KDE Frameworks Version: 5.97.0 Qt Version: 5.15.5 Kernel Version: 5.18.12-2-MANJARO (64-bit) Graphics Platform: X11 KAStatsModel is setting the PlaceholderSourceModel to itself (or rather the d-pointer) PlaceholderSourceModel calls, so when "d" gets destroyed we're still alive enough to invoke the slot. connect(sourceModelPtr, SIGNAL(destroyed()), this, SLOT(reset())); This means we handle the reset during KAStatsModel's own destructor. It's weird, but because we're in the leaf subclass it shouldn't be an issue? My only theory is that going through the old style syntax means we go via metaObject which means calling a virtual method. Calling a virtual from a destructor is awkward. If you can build KDE and can reliably reproduce can you change: placeholdermodel.cpp line 246 from connect(sourceModelPtr, SIGNAL(destroyed()), this, SLOT(reset())); to connect(sourceModelPtr, &QObject::destroyed, this, &PlaceholderModel::reset); Otherwise I'll submit it anyway and we can see what happens. (In reply to David Edmundson from comment #4) > Otherwise I'll submit it anyway and we can see what happens. I did full upgrade today using kde-unstable repo on Manjaro but the problem is still repro. David, did that change ever get submitted? |