Bug 443961

Summary: plasmashell crashes in StatusNotifierItemSource::id() on launch
Product: [Plasma] plasmashell Reporter: Airton <airton.rampim>
Component: System TrayAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: andreas.grupp, andrei.raziel, bharadwaj.raju777, hirokws, jason.kurzik, juliano.raimundu, k21gcy20j, kde.org, kdebugs, leviatan1, materka, nate, plasma-bugs, qydwhotmail, regiem5
Priority: HI Keywords: drkonqi, regression
Version: 5.23.0   
Target Milestone: 1.0   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 5.23.4
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi
Script to list SNI services
journalctl output from a crash when closing two icons
New crash information added by DrKonqi

Description Airton 2021-10-18 10:49:56 UTC
Application: plasmashell (5.23.0)

Qt Version: 5.15.3
Frameworks Version: 5.87.0
Operating System: Linux 5.11.0-37-generic x86_64
Windowing System: X11
Distribution: KDE neon User - Plasma 25th Anniversary Edition
DrKonqi: 5.23.0 [KCrashBackend]

-- Information about the crash:
The crash notification appears after loading the desktop.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault

[New LWP 1384]
[New LWP 1428]
[New LWP 1502]
[New LWP 1504]
[New LWP 1505]
[New LWP 1506]
[New LWP 1611]
[New LWP 1690]
[New LWP 1695]
[New LWP 1749]
[New LWP 1767]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f5d87b74aff in __GI___poll (fds=0x7ffd1dbdfdb8, nfds=1, timeout=1000) at ../sysdeps/unix/sysv/linux/poll.c:29
__preamble__
[Current thread is 1 (Thread 0x7f5d83cc99c0 (LWP 1353))]

Thread 12 (Thread 0x7f5d4522c700 (LWP 1767)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557cfe6bd350) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557cfe6bd300, cond=0x557cfe6bd328) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557cfe6bd328, mutex=0x557cfe6bd300) at pthread_cond_wait.c:647
#3  0x00007f5d87f0959b in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x557cfe6bd300) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x7f5d7c008840, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007f5d89b72b44 in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007f5d89b72fb9 in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007f5d87f0342c in QThreadPrivate::start(void*) (arg=0x7f5d7c0087a0) at thread/qthread_unix.cpp:329
#8  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7f5d46256700 (LWP 1749)):
#0  0x00007f5d8646d4dd in g_mutex_lock () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f5d86420270 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5d864204a3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5d881445eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f5d24000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f5d880e887b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f5d46255ba0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#5  0x00007f5d87f02292 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007f5d4633607c in KCupsConnection::run() () at /usr/lib/x86_64-linux-gnu/libkcupslib.so
#7  0x00007f5d87f0342c in QThreadPrivate::start(void*) (arg=0x557cfcd0b7e0) at thread/qthread_unix.cpp:329
#8  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7f5d5d8c3700 (LWP 1695)):
#0  0x00007f5d8646d4dd in g_mutex_lock () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f5d8641fdac in g_main_context_check () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5d86420312 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5d864204a3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f5d881445eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f5d50000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f5d880e887b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f5d5d8c2ba0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007f5d87f02292 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f5d89aad3ba in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#8  0x00007f5d87f0342c in QThreadPrivate::start(void*) (arg=0x557cfc2cb2a0) at thread/qthread_unix.cpp:329
#9  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7f5d5efe6700 (LWP 1690)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557cfd268810) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557cfd2687c0, cond=0x557cfd2687e8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557cfd2687e8, mutex=0x557cfd2687c0) at pthread_cond_wait.c:647
#3  0x00007f5d87f0959b in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x557cfd2687c0) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x557cfb77aa50, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007f5d89b72b44 in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#6  0x00007f5d89b72fb9 in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007f5d87f0342c in QThreadPrivate::start(void*) (arg=0x557cfb77a9b0) at thread/qthread_unix.cpp:329
#8  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7f5d795eb700 (LWP 1611)):
#0  0x00007f5d8646d4dd in g_mutex_lock () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f5d8641fdac in g_main_context_check () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5d86420312 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5d864204a3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f5d881445eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f5d64000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f5d880e887b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f5d795eabc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007f5d87f02292 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f5d89713549 in  () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007f5d87f0342c in QThreadPrivate::start(void*) (arg=0x557cfb9f2e90) at thread/qthread_unix.cpp:329
#9  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f5d7a7fc700 (LWP 1506)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557cfb91f128) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557cfb91f0d8, cond=0x557cfb91f100) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557cfb91f100, mutex=0x557cfb91f0d8) at pthread_cond_wait.c:647
#3  0x00007f5d80aaca4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f5d80aac64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f5d7affd700 (LWP 1505)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557cfb91f128) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557cfb91f0d8, cond=0x557cfb91f100) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557cfb91f100, mutex=0x557cfb91f0d8) at pthread_cond_wait.c:647
#3  0x00007f5d80aaca4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f5d80aac64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f5d7b7fe700 (LWP 1504)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557cfb91f12c) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557cfb91f0d8, cond=0x557cfb91f100) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557cfb91f100, mutex=0x557cfb91f0d8) at pthread_cond_wait.c:647
#3  0x00007f5d80aaca4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f5d80aac64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f5d7bfff700 (LWP 1502)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x557cfb91f128) at ../sysdeps/nptl/futex-internal.h:183
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x557cfb91f0d8, cond=0x557cfb91f100) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x557cfb91f100, mutex=0x557cfb91f0d8) at pthread_cond_wait.c:647
#3  0x00007f5d80aaca4b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f5d80aac64b in  () at /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f5d822ae700 (LWP 1428)):
#0  0x00007f5d8641e2b8 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f5d8641fcbf in g_main_context_check () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5d86420312 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5d864204a3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f5d881445eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7f5d74000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f5d880e887b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7f5d822adbb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#6  0x00007f5d87f02292 in QThread::exec() (this=this@entry=0x7f5d88af9d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f5d88a75f4b in QDBusConnectionManager::run() (this=0x7f5d88af9d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#8  0x00007f5d87f0342c in QThreadPrivate::start(void*) (arg=0x7f5d88af9d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:329
#9  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#10 0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f5d82ee9700 (LWP 1384)):
#0  0x00007f5d87b74aff in __GI___poll (fds=0x7f5d82ee8ae8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f5d8a283c1a in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f5d8a28590a in xcb_wait_for_event () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f5d835ffe88 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f5d87f0342c in QThreadPrivate::start(void*) (arg=0x557cfb6f0390) at thread/qthread_unix.cpp:329
#5  0x00007f5d86e52609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007f5d87b81293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f5d83cc99c0 (LWP 1353)):
[KCrash Handler]
#4  QString::QString(QString const&) (other=..., this=0x7ffd1dbe0a10) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1093
#5  StatusNotifierItemSource::id() const (this=this@entry=0x0) at ./applets/systemtray/statusnotifieritemsource.cpp:140
#6  0x00007f5d787420a4 in extractItemId (sniData=0x0) at ./applets/systemtray/systemtraymodel.cpp:302
#7  StatusNotifierModel::data(QModelIndex const&, int) const (this=0x557cfce98bb0, index=..., role=258) at ./applets/systemtray/systemtraymodel.cpp:302
#8  0x00007f5d880ad6ba in QModelIndex::data(int) const (arole=258, this=0x7ffd1dbe0a60) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
#9  QConcatenateTablesProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=..., role=258) at itemmodels/qconcatenatetablesproxymodel.cpp:195
#10 0x00007f5d7872eec9 in SortedSystemTrayModel::lessThanSystemTray(QModelIndex const&, QModelIndex const&) const (this=0x557cfce952e0, left=..., right=...) at ./applets/systemtray/sortedsystemtraymodel.cpp:54
#11 0x00007f5d880b7da9 in QSortFilterProxyModelPrivate::proxy_intervals_for_source_items_to_add(QVector<int> const&, QVector<int> const&, QModelIndex const&, Qt::Orientation) const (this=0x557cfce96720, proxy_to_source=..., source_items=..., source_parent=..., orient=<optimized out>) at itemmodels/qsortfilterproxymodel.cpp:868
#12 0x00007f5d880ba65f in QSortFilterProxyModelPrivate::insert_source_items(QVector<int>&, QVector<int>&, QVector<int> const&, QModelIndex const&, Qt::Orientation, bool) (this=0x557cfce96720, source_to_proxy=..., proxy_to_source=..., source_items=..., source_parent=..., orient=Qt::Vertical, emit_signal=true) at itemmodels/qsortfilterproxymodel.cpp:925
#13 0x00007f5d880bdc17 in QSortFilterProxyModelPrivate::source_items_inserted(QModelIndex const&, int, int, Qt::Orientation) (this=<optimized out>, source_parent=..., start=<optimized out>, end=<optimized out>, orient=Qt::Vertical) at itemmodels/qsortfilterproxymodel.cpp:1061
#14 0x00007f5d880c16a6 in QSortFilterProxyModelPrivate::_q_sourceRowsInserted(QModelIndex const&, int, int) (this=0x557cfce96720, source_parent=..., start=22, end=22) at itemmodels/qsortfilterproxymodel.cpp:1702
#15 0x00007f5d880c250f in QSortFilterProxyModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at itemmodels/qsortfilterproxymodel.h:199
#16 0x00007f5d88120dd0 in doActivate<false>(QObject*, int, void**) (sender=0x557cfce950e0, signal_index=13, argv=0x7ffd1dbe0f20) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#17 0x00007f5d8811a167 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x557cfce950e0, m=m@entry=0x7f5d88384020 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7ffd1dbe0f20) at kernel/qobject.cpp:3946
#18 0x00007f5d8808bcb2 in QAbstractItemModel::rowsInserted(QModelIndex const&, int, int, QAbstractItemModel::QPrivateSignal) (this=this@entry=0x557cfce950e0, _t1=..., _t2=<optimized out>, _t3=<optimized out>, _t4=...) at .moc/moc_qabstractitemmodel.cpp:592
#19 0x00007f5d88094672 in QAbstractItemModel::endInsertRows() (this=0x557cfce950e0) at itemmodels/qabstractitemmodel.cpp:2780
#20 0x00007f5d880b03ba in QConcatenateTablesProxyModelPrivate::_q_slotRowsInserted(QModelIndex const&, int, int) (end=<optimized out>, start=<optimized out>, parent=..., this=<optimized out>) at itemmodels/qconcatenatetablesproxymodel.cpp:542
#21 QConcatenateTablesProxyModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qconcatenatetablesproxymodel.cpp:148
#22 0x00007f5d88120dd0 in doActivate<false>(QObject*, int, void**) (sender=0x557cfce98bb0, signal_index=13, argv=0x7ffd1dbe1100) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#23 0x00007f5d8811a167 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x557cfce98bb0, m=m@entry=0x7f5d88384020 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7ffd1dbe1100) at kernel/qobject.cpp:3946
#24 0x00007f5d8808bcb2 in QAbstractItemModel::rowsInserted(QModelIndex const&, int, int, QAbstractItemModel::QPrivateSignal) (this=this@entry=0x557cfce98bb0, _t1=..., _t2=<optimized out>, _t3=<optimized out>, _t4=...) at .moc/moc_qabstractitemmodel.cpp:592
#25 0x00007f5d88094672 in QAbstractItemModel::endInsertRows() (this=this@entry=0x557cfce98bb0) at itemmodels/qabstractitemmodel.cpp:2780
#26 0x00007f5d78745714 in StatusNotifierModel::addSource(QString const&) (this=0x557cfce98bb0, source=...) at ./applets/systemtray/systemtraymodel.cpp:420
#27 0x00007f5d88120d9e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd1dbe12f0, r=0x557cfce98bb0, this=0x7f5d74076260) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#28 doActivate<false>(QObject*, int, void**) (sender=0x7f5d7877bde0 <(anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::holder>, signal_index=3, argv=0x7ffd1dbe12f0) at kernel/qobject.cpp:3886
#29 0x00007f5d8811a167 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x7f5d7877bde0 <(anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::holder>, m=m@entry=0x7f5d7877a580 <StatusNotifierItemHost::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd1dbe12f0) at kernel/qobject.cpp:3946
#30 0x00007f5d78723d46 in StatusNotifierItemHost::itemAdded(QString const&) (this=this@entry=0x7f5d7877bde0 <(anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::holder>, _t1=...) at ./obj-x86_64-linux-gnu/applets/systemtray/systemtraymodel_static_autogen/EWIEGA46WW/moc_statusnotifieritemhost.cpp:174
#31 0x00007f5d78734987 in StatusNotifierItemHost::addSNIService(QString const&) (this=this@entry=0x7f5d7877bde0 <(anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::holder>, service=...) at ./applets/systemtray/statusnotifieritemhost.cpp:175
#32 0x00007f5d78734a7f in StatusNotifierItemHost::serviceRegistered(QString const&) (this=0x7f5d7877bde0 <(anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::holder>, service=...) at ./applets/systemtray/statusnotifieritemhost.cpp:149
#33 0x00007f5d88120d9e in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd1dbe14e0, r=0x7f5d7877bde0 <(anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::holder>, this=0x557cfce9aaf0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#34 doActivate<false>(QObject*, int, void**) (sender=0x557cfcdc1640, signal_index=5, argv=0x7ffd1dbe14e0) at kernel/qobject.cpp:3886
#35 0x00007f5d8811a167 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f5d7877a840 <OrgKdeStatusNotifierWatcherInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7ffd1dbe14e0) at kernel/qobject.cpp:3946
#36 0x00007f5d78749ce8 in OrgKdeStatusNotifierWatcherInterface::StatusNotifierItemRegistered(QString const&) (_t1=..., this=<optimized out>) at ./obj-x86_64-linux-gnu/applets/systemtray/statusnotifierwatcher_interface.moc:242
#37 OrgKdeStatusNotifierWatcherInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x557cfcdc1640, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=2, _a=_a@entry=0x7ffd1dbe1630) at ./obj-x86_64-linux-gnu/applets/systemtray/statusnotifierwatcher_interface.moc:113
#38 0x00007f5d7874a0e3 in OrgKdeStatusNotifierWatcherInterface::qt_metacall(QMetaObject::Call, int, void**) (this=0x557cfcdc1640, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7ffd1dbe1630) at ./obj-x86_64-linux-gnu/applets/systemtray/statusnotifierwatcher_interface.moc:199
#39 0x00007f5d88a8255b in QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&, QVector<int> const&, int) (this=<optimized out>, object=<optimized out>, msg=..., metaTypes=..., slotIdx=<optimized out>) at qdbusintegrator.cpp:1001
#40 0x00007f5d88117919 in QObject::event(QEvent*) (this=0x557cfcdc1640, e=0x7f5d7406c3c0) at kernel/qobject.cpp:1314
#41 0x00007f5d88df9dc3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x557cfb6ed650, receiver=receiver@entry=0x557cfcdc1640, e=e@entry=0x7f5d7406c3c0) at kernel/qapplication.cpp:3632
#42 0x00007f5d88e02bb8 in QApplication::notify(QObject*, QEvent*) (this=0x7ffd1dbe1d50, receiver=0x557cfcdc1640, e=0x7f5d7406c3c0) at kernel/qapplication.cpp:3156
#43 0x00007f5d880e9d7a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x557cfcdc1640, event=0x7f5d7406c3c0) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#44 0x00007f5d880ec681 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x557cfb6c6ef0) at kernel/qcoreapplication.cpp:1821
#45 0x00007f5d88144f77 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x557cfb795920) at kernel/qeventdispatcher_glib.cpp:277
#46 0x00007f5d8642017d in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007f5d86420400 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007f5d864204a3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007f5d881445d2 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x557cfb7a6af0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#50 0x00007f5d880e887b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd1dbe1c30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141
#51 0x00007f5d880f0a34 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#52 0x0000557cfaaa6cf5 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./shell/main.cpp:238
[Inferior 1 (process 1353) detached]

The reporter indicates this bug may be a duplicate of or related to bug 421100.

Possible duplicates by query: bug 443923, bug 443059, bug 442244, bug 439721, bug 432867.

Reported using DrKonqi
Comment 1 Nate Graham 2021-10-18 16:57:58 UTC
#5  StatusNotifierItemSource::id() const (this=this@entry=0x0) at ./applets/systemtray/statusnotifieritemsource.cpp:140
#6  0x00007f5d787420a4 in extractItemId (sniData=0x0) at ./applets/systemtray/systemtraymodel.cpp:302
Comment 2 Nate Graham 2021-10-21 14:59:11 UTC
*** Bug 444171 has been marked as a duplicate of this bug. ***
Comment 3 Bharadwaj Raju 2021-10-22 05:48:28 UTC
What apps do you have in the system tray?
Comment 4 Airton 2021-10-22 22:37:59 UTC
(In reply to Bharadwaj Raju from comment #3)
> What apps do you have in the system tray?

Besides the standard apps, I have Insync 3.2.4.40856 and Telegram 3.1.8 in the system tray.

Update: Now the problem can't be reproduced every time. It only occurs occasionally.
Comment 5 Nate Graham 2021-10-26 14:06:05 UTC
*** Bug 444413 has been marked as a duplicate of this bug. ***
Comment 6 Airton 2021-10-26 20:30:32 UTC
I commented before that the problem occurs sometimes, but I couldn't find out what should be causing it. Now, I think it's related with the layout configuration of the desktop. So, in case you can't replicate the crash, try setting the "Layout" field to "Folder View" in "Desktop Context Menu > Configure Desktop and Wallpaper... > Wallpaper"
Comment 7 Andrei Coada 2021-11-01 13:18:29 UTC
Created attachment 143098 [details]
New crash information added by DrKonqi

plasmashell (5.23.2) using Qt 5.15.2

- What I was doing when the application crashed:
Exiting the double-shown Slack App in the tray bar.

-- Backtrace (Reduced):
#6  QString::QString (other=..., this=0x7ffd1dd75940) at /usr/include/qt5/QtCore/qstring.h:1093
#7  StatusNotifierItemSource::id (this=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/statusnotifieritemsource.cpp:140
#8  extractItemId (sniData=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:284
#9  StatusNotifierModel::data (this=0x55a12ecfac50, index=..., role=364) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:302
#10 0x00007f0490edea43 in QModelIndex::data (arole=364, this=0x7ffd1dd759a0) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Comment 8 Fushan Wen 2021-11-01 14:07:38 UTC
It's likely to be caused by two services with the same service name, so the hash table cannot handle them.
Comment 9 Bug Janitor Service 2021-11-01 14:51:17 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1166
Comment 10 Fushan Wen 2021-11-02 02:16:18 UTC
Created attachment 143117 [details]
New crash information added by DrKonqi

plasmashell (5.23.80) using Qt 5.15.2

- What I was doing when the application crashed:

The crash was deliberately produced. Please ignore it and see https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1166

-- Backtrace (Reduced):
#6  0x00007f7108097a44 in QString::QString(QString const&) (this=0x7ffd4428c068, other=...) at /usr/include/qt5/QtCore/qstring.h:1093
#10 0x00007f71162d8a73 in QModelIndex::data(int) const (arole=364, this=0x7ffd4428c210) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
#11 QConcatenateTablesProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=<optimized out>, role=364) at itemmodels/qconcatenatetablesproxymodel.cpp:195
#12 0x00007f71162e54c1 in QSortFilterProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=..., role=364) at itemmodels/qsortfilterproxymodel.cpp:2294
#13 0x00007f71162e54c1 in QSortFilterProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=..., role=364) at itemmodels/qsortfilterproxymodel.cpp:2294
Comment 11 Jason Kurzik 2021-11-03 16:23:53 UTC
Created attachment 143173 [details]
New crash information added by DrKonqi

plasmashell (5.23.2) using Qt 5.15.2

- What I was doing when the application crashed:
  Immediately loading into KDE


First occured after installing a second keyboard theme.  It also appears the keyboard plasmoid might be loaded twice, not sure.

-- Backtrace (Reduced):
#6  QString::QString (other=..., this=0x7ffc5d0aefe0) at /usr/include/qt5/QtCore/qstring.h:1093
#7  StatusNotifierItemSource::id (this=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/statusnotifieritemsource.cpp:140
#8  extractItemId (sniData=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:284
#9  StatusNotifierModel::data (this=0x55df60782ee0, index=..., role=364) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:302
#10 0x00007f9f5671ba73 in QModelIndex::data (arole=364, this=0x7ffc5d0af040) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Comment 12 Nate Graham 2021-11-08 21:31:34 UTC
*** Bug 445057 has been marked as a duplicate of this bug. ***
Comment 13 Nicolas Fella 2021-11-11 12:46:42 UTC
*** Bug 445326 has been marked as a duplicate of this bug. ***
Comment 14 Tim 2021-11-15 16:06:45 UTC
Created attachment 143586 [details]
New crash information added by DrKonqi

plasmashell (5.23.3) using Qt 5.15.3

- What I was doing when the application crashed:
I had just updated Telegram, and it restarted.

- Unusual behavior I noticed:
Before the update, I had several duplicate icons in the system tray, which I thought as strange. This duplicate system-tray icon behaviour has only happend once, this time, so far. I think this could have been related to my using a sysctl command to disable ipv6 after connecting to an ipv4-only vpn, which may have been unexpected for several other programs utilizing the network having system-tray icons displayed... only a hunch though.

Thanks to you all!

-- Backtrace (Reduced):
#4  QString::QString (other=..., this=0x7ffc43fea150) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1093
#5  StatusNotifierItemSource::id (this=this@entry=0x0) at ./applets/systemtray/statusnotifieritemsource.cpp:140
#6  0x00007f03601bd1e4 in extractItemId (sniData=0x0) at ./applets/systemtray/systemtraymodel.cpp:302
#7  StatusNotifierModel::data (this=0x557ea69be1b0, index=..., role=258) at ./applets/systemtray/systemtraymodel.cpp:302
#8  0x00007f0379a466ea in QModelIndex::data (arole=258, this=0x7ffc43fea1a0) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Comment 15 Jason Kurzik 2021-11-15 17:19:14 UTC
Created attachment 143591 [details]
New crash information added by DrKonqi

plasmashell (5.23.2) using Qt 5.15.2

The problem had went away after I turned off a second keyboard layout and updated to 5.23.2.  I decided to attempt a reproduction, which worked.

- What I was doing when the application crashed:
Added a second US English keyboard layout
Rebooted computer
Switched activity
Closed the IBus applet
Closed second IBus applet
Crashed (not sure which closing caused the crash)

- Unusual behavior I noticed:
The problem was not occuring (only one IBus loaded and did not crash when closed) when only one keyboard layout was present


I'm going to remove second keyboard layout and repeat steps to see if this resolves the issue, I'll add a comment to the bug if it resolves.

-- Backtrace (Reduced):
#6  QString::QString (other=..., this=0x7fff5e69a2c0) at /usr/include/qt5/QtCore/qstring.h:1093
#7  StatusNotifierItemSource::id (this=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/statusnotifieritemsource.cpp:140
#8  extractItemId (sniData=0x0) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:284
#9  StatusNotifierModel::data (this=0x55f98f992180, index=..., role=364) at /usr/src/debug/plasma5-workspace-5.23.2-1.1.x86_64/applets/systemtray/systemtraymodel.cpp:302
#10 0x00007f4be49bea73 in QModelIndex::data (arole=364, this=0x7fff5e69a320) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Comment 16 Jason Kurzik 2021-11-15 17:28:15 UTC
Removing the second keyboard layout did not remove the duplicate icon from spawning, and crash does still occur when trying to close them.
Comment 17 Konrad Materka 2021-11-15 21:44:51 UTC
Created attachment 143603 [details]
Script to list SNI services

Hi Jason, could you run attached script? It lists registered SNI services, I want to confirm if there are duplicates in DBUS services.
Some logs would be useful too, could you run this please?

journalctl -b 0 | grep "system tray"

So far I was not able too reproduce this issue, but I didn't try to configure with multiple keyboard layouts - I will try that later.
Comment 18 Konrad Materka 2021-11-15 22:49:01 UTC
I think I was able to reproduce. I restarted kded5 few times using:

kquitapp5 kded5; kstart5 kded5

Usually it worked fine, but randomly it caused plasma to crash or all SNI icons where duplicated (Skype, Dropbox etc). Keyboard layout is a plasmoid on my system so it was not affected - I don't have IBus icon).
Comment 19 Jason Kurzik 2021-11-16 14:23:02 UTC
(In reply to Konrad Materka from comment #17)
> Created attachment 143603 [details]
> Script to list SNI services
> 
> Hi Jason, could you run attached script? It lists registered SNI services, I
> want to confirm if there are duplicates in DBUS services.
> Some logs would be useful too, could you run this please?
> 
> journalctl -b 0 | grep "system tray"
> 
> So far I was not able too reproduce this issue, but I didn't try to
> configure with multiple keyboard layouts - I will try that later.

I had to replace the ps command because the -ph wasn't working

-----------------------------------
org.kde.StatusNotifierWatcher
pid,start,command:  2287 12:26:26 /usr/bin/kded5

ITEMS:

ITEM:      :1.31/org/ayatana/NotificationItem/ibus_ui_gtk3
PID STAT:  2492 ? Sl 0:03 /usr/lib64/ibus/ibus-ui-gtk3
ID:        ibus-ui-gtk3
TITLE:     IBus Panel

ITEM:      :1.50/org/ayatana/NotificationItem/pcloud1
PID STAT:  2464 ? Sl 2:29 /tmp/.mount_pcloudfDrDBU/pcloud
ID:        pcloud1
TITLE:     pcloud

ITEM:      :1.70/org/ayatana/NotificationItem/discord1
PID STAT:  8530 ? Sl 6:30 /usr/lib64/discord/Discord
ID:        discord1
TITLE:     discord
-----------------

However, two of those ibus panel icons are clearly visible on my screen.    Closing one of them didn't result in a crash. However right clicking the second one to attempt to close it resulted in a crash.  Attaching journalctl output surrounding a crash (filtering out kernel USB messages).
Comment 20 Jason Kurzik 2021-11-16 14:24:01 UTC
Created attachment 143626 [details]
journalctl output from a crash when closing two icons
Comment 21 francisco_t 2021-11-19 12:51:36 UTC
Created attachment 143726 [details]
New crash information added by DrKonqi

plasmashell (5.23.3) using Qt 5.15.3

- What I was doing when the application crashed:
First I was connecting to VPN and then I close element app with system tray icon.

-- Backtrace (Reduced):
#4  QString::QString (other=..., this=0x7ffc8ba59eb0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:1093
#5  StatusNotifierItemSource::id (this=this@entry=0x0) at ./applets/systemtray/statusnotifieritemsource.cpp:140
#6  0x00007f2836e1a1e4 in extractItemId (sniData=0x0) at ./applets/systemtray/systemtraymodel.cpp:302
#7  StatusNotifierModel::data (this=0x55d1a6cfcbe0, index=..., role=364) at ./applets/systemtray/systemtraymodel.cpp:302
#8  0x00007f2849d686ea in QModelIndex::data (arole=364, this=0x7ffc8ba59f00) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
Comment 22 Fushan Wen 2021-11-20 13:16:14 UTC
Git commit c0b8f6871e75bbc268165844ad5780f13a5f88ac by Fushan Wen.
Committed on 20/11/2021 at 10:46.
Pushed by fusionfuture into branch 'master'.

systemtray: Check if a service is already added before processing QDBusReply

Due to async nature of QDBusPendingReply, services could be already
registered by QDBusServiceWatcher when the pending reply takes a long
time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered
signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished,
which will make the same service added twice and crash plasmashell.

We need to check if a service is already added in m_sniServices before
processing registered items in QDBusReply.

M  +3    -1    applets/systemtray/statusnotifieritemhost.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/c0b8f6871e75bbc268165844ad5780f13a5f88ac
Comment 23 Fushan Wen 2021-11-20 13:17:26 UTC
Git commit 931a5441746daf10d9476409f347263719ef6c63 by Fushan Wen.
Committed on 20/11/2021 at 13:17.
Pushed by fusionfuture into branch 'Plasma/5.23'.

systemtray: Check if a service is already added before processing QDBusReply

Due to async nature of QDBusPendingReply, services could be already
registered by QDBusServiceWatcher when the pending reply takes a long
time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered
signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished,
which will make the same service added twice and crash plasmashell.

We need to check if a service is already added in m_sniServices before
processing registered items in QDBusReply.


(cherry picked from commit c0b8f6871e75bbc268165844ad5780f13a5f88ac)

M  +3    -1    applets/systemtray/statusnotifieritemhost.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/931a5441746daf10d9476409f347263719ef6c63
Comment 24 Nate Graham 2021-12-07 21:10:09 UTC
*** Bug 446619 has been marked as a duplicate of this bug. ***
Comment 25 Nate Graham 2022-06-21 16:56:01 UTC
*** Bug 455505 has been marked as a duplicate of this bug. ***