https://bugs.kde.org/show_bug.cgi?id=525437
Bug ID: 525437
Summary: Kicker widget causes plasmashell to hang for over 10
seconds when installing or removing graphical
applications
Classification: Plasma
Product: plasmashell
Version First 6.3.6
Reported In:
Platform: Debian stable
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: Application Menu (Kicker) widget
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: 1.0
DESCRIPTION
When installing or removing an application on a system with over 350 menu
entries, kicker will apparently rescan the entire list of installed
applications and some other data and create an entire new QML widget tree for
every single installed application.
STEPS TO REPRODUCE
1. Have many applications installed (probably most older system installs
really, this one originates from 2013 I think)
2. Install one more for the road
OBSERVED RESULT
The `plasma-plasmashell.service` journal will contain over 300 entries of the
form
> Sep 09 16:32:16 Yukis-NB plasmashell[765159]: (plasmashell:1109960):
> org.kde.plasma.runner.services-DEBUG: 16:32:15.942: unknown: "Firefox Testing
> Browser" disqualified? false
which already lasts for over a second.
After this there will also be some `kf.service.sycoca` related entries (a
`kbuildsycoca6` run on this system takes around 1,5s).
By breaking in GDB I also observed stack traces with a lot of
`QQmlObjectCreator::create` calls (see at the end).
EXPECTED RESULT
plasmashell should run smoothly after application installation/removal.
SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a
terminal window):
KDE Plasma Version: 6.3.6
KDE Frameworks Version: 6.13.0
Qt Version: 6.8.2
ADDITIONAL INFORMATION
```
#0 QThreadData::current (createIfNecessary=true) at
./src/corelib/thread/qthread_unix.cpp:155
#1 0x0000744215dda1be in QObject::QObject
(this=0x56bd54021f30, dd=..., parent=0x56bd54021840, this=<optimized out>,
dd=<optimized out>, parent=<optimized out>)
at ./src/corelib/kernel/qobject.cpp:951
#2 0x000074421761a125 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#3 0x000074421761a335 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#4 0x00007442170aea41 in qmlAttachedPropertiesObject(QObject*, QObject*
(*)(QObject*), bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#5 0x0000744217149f7a in
QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*,
QV4::CompiledData::Binding const*) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#6 0x000074421714d57e in
QQmlObjectCreator::setupBindings(QFlags<QQmlObjectCreator::BindingMode>) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#7 0x00007442171538a1 in QQmlObjectCreator::populateInstance(int, QObject*,
QObject*, QQmlPropertyData const*, QV4::CompiledData::Binding const*) () at
/lib/x86_64-linux-gnu/libQt6Qml.so.6
#8 0x0000744217155c1f in QQmlObjectCreator::createInstance(int, QObject*,
bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#9 0x000074421714a475 in
QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*,
QV4::CompiledData::Binding const*) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#10 0x000074421714d57e in
QQmlObjectCreator::setupBindings(QFlags<QQmlObjectCreator::BindingMode>) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#11 0x00007442171538a1 in QQmlObjectCreator::populateInstance(int, QObject*,
QObject*, QQmlPropertyData const*, QV4::CompiledData::Binding const*) () at
/lib/x86_64-linux-gnu/libQt6Qml.so.6
#12 0x0000744217155c1f in QQmlObjectCreator::createInstance(int, QObject*,
bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#13 0x0000744217148137 in QQmlObjectCreator::create(int, QObject*,
QQmlInstantiationInterrupt*, int) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#14 0x000074421715610d in QQmlObjectCreator::createInstance(int, QObject*,
bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#15 0x0000744217148137 in QQmlObjectCreator::create(int, QObject*,
QQmlInstantiationInterrupt*, int) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#16 0x000074421715610d in QQmlObjectCreator::createInstance(int, QObject*,
bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#17 0x0000744217148137 in QQmlObjectCreator::create(int, QObject*,
QQmlInstantiationInterrupt*, int) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#18 0x000074421711a28c in
QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) () at
/lib/x86_64-linux-gnu/libQt6Qml.so.6
#19 0x000074421711ab44 in QQmlEnginePrivate::incubate(QQmlIncubator&,
QQmlRefPointer<QQmlContextData> const&) ()
at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#20 0x000074421493231d in ??? () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#21 0x00007442178d256b in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#22 0x00007442178bba14 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#23 0x00007442178d0d74 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#24 0x00007442178d570d in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#25 0x00007442178d593a in QQuickItemView::modelUpdated(QQmlChangeSet const&,
bool) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#26 0x00007442178d6150 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#27 0x0000744215de46a8 in doActivate<false> (sender=0x56bcd2b72530,
signal_index=4, argv=0x7ffd4f775a10)
at ./src/corelib/kernel/qobject.cpp:4127
#28 0x00007442148fcc4a in QQmlInstanceModel::modelUpdated(QQmlChangeSet const&,
bool) () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#29 0x000074421493037c in ??? () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#30 0x0000744214933013 in ??? () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#31 0x000074421493afcc in QQmlDelegateModel::handleModelReset() () at
/lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#32 0x0000744215de4403 in QtPrivate::QSlotObjectBase::call
(this=<optimized out>, r=0x56bcd2b72530, a=0x7ffd4f776cc0, this=<optimized
out>, r=<optimized out>, a=<optimized out>)
at ./src/corelib/kernel/qobjectdefs_impl.h:486
#33 doActivate<false> (sender=0x56bcce605430, signal_index=6,
argv=0x7ffd4f776cc0) at ./src/corelib/kernel/qobject.cpp:4115
#34 0x0000744215f5a45a in QAbstractItemModel::layoutChanged (this=<optimized
out>, _t1=<optimized out>, _t2=<optimized out>)
at
./obj-x86_64-linux-gnu/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:1039
#35 0x0000744170584428 in ??? () at
/usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/plasma/private/kicker/libkickerplugin.so
#36 0x00007441705a08c9 in ??? () at
/usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/plasma/private/kicker/libkickerplugin.so
#37 0x0000744215dd5e17 in QObject::event (this=0x56bccff3f5e0,
e=0x56bcf6199160) at ./src/corelib/kernel/qobject.cpp:1418
#38 0x0000744217db49b5 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() at /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#39 0x0000744215d96570 in QCoreApplication::notifyInternal2
(receiver=0x56bccff3f5e0, event=0x56bcf6199160)
at ./src/corelib/kernel/qcoreapplication.cpp:1172
#40 0x0000744215d965bd in QCoreApplication::sendEvent (receiver=<optimized
out>, event=<optimized out>)
at ./src/corelib/kernel/qcoreapplication.cpp:1612
#41 0x0000744215d970d7 in QCoreApplicationPrivate::sendPostedEvents
(receiver=0x0, event_type=0, data=0x56bccbadf660)
at ./src/corelib/kernel/qcoreapplication.cpp:1946
#42 0x0000744215fa8c57 in postEventSourceDispatch (s=0x56bccbaead80) at
./src/corelib/kernel/qeventdispatcher_glib.cpp:246
#43 0x00007442146473c5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007442146495f7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x0000744214649d60 in g_main_context_iteration () at
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x0000744215fa6563 in QEventDispatcherGlib::processEvents
(this=0x56bccbaa3920, flags=...)
at ./src/corelib/kernel/qeventdispatcher_glib.cpp:399
#47 0x0000744215d98853 in QEventLoop::exec (this=this@entry=0x7ffd4f777260,
flags=..., flags@entry=...)
at ./src/corelib/global/qflags.h:34
#48 0x0000744215d9a14a in QCoreApplication::exec () at
./src/corelib/global/qflags.h:74
#49 0x000056bcadb8c177 in ??? ()
#50 0x0000744215634ca8 in __libc_start_call_main
(main=main@entry=0x56bcadb8b4d0, argc=argc@entry=2,
argv=argv@entry=0x7ffd4f7777b8)
at ../sysdeps/nptl/libc_start_call_main.h:58
#51 0x0000744215634d65 in __libc_start_main_impl
(main=0x56bcadb8b4d0, argc=2, argv=0x7ffd4f7777b8, init=<optimized out>,
fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd4f7777a8) at
../csu/libc-start.c:360
#52 0x000056bcadb8c2b1 in ??? ()
```
--
You are receiving this mail because:
You are watching all bug changes.