Bug 482887 - plasmashell crashes in KAStatsFavoritesModel::Private::Private
Summary: plasmashell crashes in KAStatsFavoritesModel::Private::Private
Status: RESOLVED FIXED
Alias: None
Product: frameworks-activities-stats
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.248.0
Platform: Manjaro Linux
: NOR normal
Target Milestone: ---
Assignee: Ivan Čukić
URL:
Keywords: qt6
: 484458 484614 485331 485471 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-03-08 15:26 UTC by medin
Modified: 2024-04-13 14:19 UTC (History)
9 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0.4


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description medin 2024-03-08 15:26:23 UTC
Operating System: Manjaro Linux 
KDE Plasma Version: 6.0.1
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Kernel Version: 6.7.9-1-MANJARO (64-bit)
Graphics Platform: Wayland



Core was generated by `/usr/bin/plasmashell --no-respawn'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007914a7fc5ae6 in KAStatsFavoritesModel::Private::Private(KAStatsFavoritesModel*, QString const&)::{lambda()#1}::operator()() const (__closure=0x645ecbdaeda0)
    at /usr/src/debug/plasma-workspace/plasma-workspace-6.0.1/applets/kicker/plugin/kastatsfavoritesmodel.cpp:189
Downloading source file /usr/src/debug/plasma-workspace/plasma-workspace-6.0.1/applets/kicker/plugin/kastatsfavoritesmodel.cpp
189                     it.value()->reload();                                                                                                                                                  
[Current thread is 1 (Thread 0x7914cac979c0 (LWP 7061))]
(gdb) bt
#0  0x00007914a7fc5ae6 in KAStatsFavoritesModel::Private::Private(KAStatsFavoritesModel*, QString const&)::{lambda()#1}::operator()() const (__closure=0x645ecbdaeda0)
    at /usr/src/debug/plasma-workspace/plasma-workspace-6.0.1/applets/kicker/plugin/kastatsfavoritesmodel.cpp:189
#1  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KAStatsFavoritesModel::Private::Private(KAStatsFavoritesModel*, QString const&)::{lambda()#1}>::call(KAStatsFavoritesModel::Private::Private(KAStatsFavoritesModel*, QString const&)::{lambda()#1}&, void**) (arg=<optimized out>, f=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#2  QtPrivate::Functor<KAStatsFavoritesModel::Private::Private(KAStatsFavoritesModel*, QString const&)::{lambda()#1}, 0>::call<QtPrivate::List<>, void>(KAStatsFavoritesModel::Private::Private(KAStatsFavoritesModel*, QString const&)::{lambda()#1}&, void*, void**) (arg=<optimized out>, f=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:339
#3  QtPrivate::QCallableObject<KAStatsFavoritesModel::Private::Private(KAStatsFavoritesModel*, QString const&)::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=0x645ecbdaed90, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:522
#4  0x00007914cfd90ca9 in QtPrivate::QSlotObjectBase::call (a=0x7ffebea1a098, r=0x645ecbd23690, this=0x645ecbdaed90, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobjectdefs_impl.h:433
#5  doActivate<false> (sender=0x645ecb18c620, signal_index=3, argv=0x7ffebea1a098) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:4039
#6  0x00007914cfd90ca9 in QtPrivate::QSlotObjectBase::call (a=0x7ffebea1a1d0, r=0x645ecb18c620, this=0x645ecb29af50, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobjectdefs_impl.h:433
#7  doActivate<false> (sender=0x645ecb1e6430, signal_index=4, argv=0x7ffebea1a1d0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:4039
#8  0x00007914d0b9282a in KDirWatch::created (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kcoreaddons/build/src/lib/KF6CoreAddons_autogen/include/moc_kdirwatch.cpp:240
#9  0x00007914cfd7c2c7 in QObject::event (this=0x645ecb1e6430, e=0x7914bc0066a0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:1437
#10 0x00007914d1af438b in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x645ecb1e6430, e=0x7914bc0066a0)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:3296
#11 0x00007914cfd39818 in QCoreApplication::notifyInternal2 (receiver=0x645ecb1e6430, event=event@entry=0x7914bc0066a0)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1121
#12 0x00007914cfd39b9b in QCoreApplication::sendEvent (event=0x7914bc0066a0, receiver=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1539
#13 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x645ecad94ba0)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1901
#14 0x00007914cff758a4 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1760
#15 postEventSourceDispatch (s=0x645ecadc2cf0) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#16 0x00007914ce895f69 in g_main_dispatch (context=0x7914c4000ef0) at ../glib/glib/gmain.c:3476
#17 0x00007914ce8f43a7 in g_main_context_dispatch_unlocked (context=0x7914c4000ef0) at ../glib/glib/gmain.c:4284
#18 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7914c4000ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#19 0x00007914ce894162 in g_main_context_iteration (context=0x7914c4000ef0, may_block=1) at ../glib/glib/gmain.c:4414
#20 0x00007914cff739c4 in QEventDispatcherGlib::processEvents (this=0x645ecadd83e0, flags=...)
    at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#21 0x00007914cfd43d6e in QEventLoop::processEvents (flags=..., this=0x7ffebea1a650) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:100
#22 QEventLoop::exec (this=0x7ffebea1a650, flags=...) at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:182
#23 0x00007914cfd3c2b8 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qflags.h:74
#24 0x00007914d1af0f0a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:2574
#25 0x0000645ec9f77486 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.0.1/shell/main.cpp:214
(gdb)
Comment 1 Nicolas Fella 2024-03-08 23:40:23 UTC
Possibly caused by https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3982
Comment 2 Nicolas Fella 2024-03-27 22:56:04 UTC
*** Bug 484458 has been marked as a duplicate of this bug. ***
Comment 3 Nicolas Fella 2024-03-27 22:56:34 UTC
*** Bug 484614 has been marked as a duplicate of this bug. ***
Comment 4 Fushan Wen 2024-03-28 16:40:24 UTC
Git commit 2942dcf06c9661cf61a0255eeaa750c34b43e62d by Fushan Wen.
Committed on 28/03/2024 at 16:12.
Pushed by fusionfuture into branch 'master'.

applets/kicker: avoid calling reload() recursively

KSycoca::ensureCacheValid might emit databaseChanged signal again, which
will cause a crash

SENTRY: PLASMA-WORKSPACE-5HC
SENTRY: PLASMA-WORKSPACE-6P5
SENTRY: PLASMA-WORKSPACE-2KD

M  +0    -1    applets/kicker/plugin/appentry.h
M  +17   -12   applets/kicker/plugin/kastatsfavoritesmodel.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/2942dcf06c9661cf61a0255eeaa750c34b43e62d
Comment 5 Fushan Wen 2024-03-28 17:04:06 UTC
Git commit 9b6a8aaf7968c4ac82613f114ee6c1223a2d03b8 by Fushan Wen.
Committed on 28/03/2024 at 16:42.
Pushed by fusionfuture into branch 'Plasma/6.0'.

applets/kicker: avoid calling reload() recursively

KSycoca::ensureCacheValid might emit databaseChanged signal again, which
will cause a crash

SENTRY: PLASMA-WORKSPACE-5HC
SENTRY: PLASMA-WORKSPACE-6P5
SENTRY: PLASMA-WORKSPACE-2KD


(cherry picked from commit 2942dcf06c9661cf61a0255eeaa750c34b43e62d)

M  +0    -1    applets/kicker/plugin/appentry.h
M  +17   -12   applets/kicker/plugin/kastatsfavoritesmodel.cpp

https://invent.kde.org/plasma/plasma-workspace/-/commit/9b6a8aaf7968c4ac82613f114ee6c1223a2d03b8
Comment 6 Nate Graham 2024-04-11 17:50:38 UTC
*** Bug 485331 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2024-04-13 14:19:08 UTC
*** Bug 485471 has been marked as a duplicate of this bug. ***