Bug 353015

Summary: Crash in Garbage collection after Plasma::DataEngine::connectSource
Product: [Plasma] plasmashell Reporter: Cristian Castro <lahostiafulluser>
Component: generalAssignee: David Edmundson <kde>
Status: RESOLVED FIXED    
Severity: crash CC: bhush94, cpatrick08, eng.mahs, gustavo.antunez2000, heikki, netphilos, plasma-bugs, renda.krell, squan
Priority: NOR Keywords: drkonqi
Version: 5.4.0   
Target Milestone: 1.0   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: my backtrace
latest backtrace with debug-symbols installed

Description Cristian Castro 2015-09-21 23:30:11 UTC
Application: plasmashell (5.4.0)

Qt Version: 5.4.2
Operating System: Linux 4.1.6-3-desktop x86_64
Distribution: "openSUSE 20150909 (Tumbleweed) (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:
I was startup my pc, when inmediately after login on sddm, plasma 5 crashes, but pulsing restart application plasma5 start normaly

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f811a9b2880 (LWP 1480))]

Thread 7 (Thread 0x7f8104025700 (LWP 1482)):
#0  0x00007f8113ff132d in poll () from /lib64/libc.so.6
#1  0x00007f8118e19332 in ?? () from /usr/lib64/libxcb.so.1
#2  0x00007f8118e1ae17 in xcb_wait_for_event () from /usr/lib64/libxcb.so.1
#3  0x00007f81063757f9 in ?? () from /usr/lib64/qt5/plugins/platforms/libqxcb.so
#4  0x00007f81146dceaf in ?? () from /usr/lib64/libQt5Core.so.5
#5  0x00007f81137f94a4 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f8113ff9cad in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f81017ff700 (LWP 1499)):
#0  0x00007f81107030d7 in ?? () from /usr/lib64/libglib-2.0.so.0
#1  0x00007f811070585a in g_main_context_check () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f8110705e38 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f8110705f9c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f811490120b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f81148aa5ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#6  0x00007f81146d813c in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#7  0x00007f81178fdce5 in QQmlThreadPrivate::run (this=0x20aa850) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/ftw/qqmlthread.cpp:141
#8  0x00007f81146dceaf in ?? () from /usr/lib64/libQt5Core.so.5
#9  0x00007f81137f94a4 in start_thread () from /lib64/libpthread.so.0
#10 0x00007f8113ff9cad in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f80f0517700 (LWP 1500)):
#0  0x00007f8113ff132d in poll () from /lib64/libc.so.6
#1  0x00007f8110705e94 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f8110705f9c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f811490120b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f81148aa5ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f81146d813c in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#6  0x00007f81178fdce5 in QQmlThreadPrivate::run (this=0x234adb0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/ftw/qqmlthread.cpp:141
#7  0x00007f81146dceaf in ?? () from /usr/lib64/libQt5Core.so.5
#8  0x00007f81137f94a4 in start_thread () from /lib64/libpthread.so.0
#9  0x00007f8113ff9cad in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f80ee266700 (LWP 1504)):
#0  0x00007f8113ff132d in poll () from /lib64/libc.so.6
#1  0x00007f8110705e94 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f8110705f9c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f811490120b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f81148aa5ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f81146d813c in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#6  0x00007f81178fdce5 in QQmlThreadPrivate::run (this=0x2e1c540) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/ftw/qqmlthread.cpp:141
#7  0x00007f81146dceaf in ?? () from /usr/lib64/libQt5Core.so.5
#8  0x00007f81137f94a4 in start_thread () from /lib64/libpthread.so.0
#9  0x00007f8113ff9cad in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f80ec9b8700 (LWP 1505)):
#0  0x00007f81137ff07f in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f811a08a7f4 in ?? () from /usr/lib64/libQt5Script.so.5
#2  0x00007f811a08a839 in ?? () from /usr/lib64/libQt5Script.so.5
#3  0x00007f81137f94a4 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f8113ff9cad in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f805dd9b700 (LWP 1506)):
#0  0x00007f8113ff132d in poll () from /lib64/libc.so.6
#1  0x00007f8110705e94 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f8110705f9c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f811490120b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#4  0x00007f81148aa5ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007f81146d813c in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#6  0x00007f8118476ae2 in QQuickPixmapReader::run (this=0x303cee0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/quick/util/qquickpixmapcache.cpp:714
#7  0x00007f81146dceaf in ?? () from /usr/lib64/libQt5Core.so.5
#8  0x00007f81137f94a4 in start_thread () from /lib64/libpthread.so.0
#9  0x00007f8113ff9cad in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f811a9b2880 (LWP 1480)):
[KCrash Handler]
#6  inUse (this=0x1) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4managed_p.h:342
#7  QV4::MemoryManager::collectFromJSStack (this=this@entry=0x2e1c4d0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4mm.cpp:581
#8  0x00007f81177ea2c3 in QV4::MemoryManager::mark (this=this@entry=0x2e1c4d0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4mm.cpp:295
#9  0x00007f81177eacb8 in QV4::MemoryManager::runGC (this=this@entry=0x2e1c4d0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4mm.cpp:458
#10 0x00007f81177ebb43 in QV4::MemoryManager::allocData (this=0x2e1c4d0, size=size@entry=96) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4mm.cpp:211
#11 0x00007f81178f0c3d in allocManaged (size=<optimized out>, this=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4mm_p.h:94
#12 alloc<QV4::QmlContextWrapper, QV8Engine*, QQmlContextData*, QObject*> (arg3=0x4d4c6f0, arg2=0x4d4b4f0, arg1=0x2e246c0, this=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4mm_p.h:125
#13 QV4::QmlContextWrapper::qmlScope (v8=0x2e246c0, ctxt=0x4d4b4f0, scope=0x4d4c6f0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlcontextwrapper.cpp:78
#14 0x00007f81178f8de3 in QQmlObjectCreator::createInstance (this=this@entry=0x7ffe90179eb0, index=index@entry=0, parent=parent@entry=0x0, isContextObject=isContextObject@entry=true) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlobjectcreator.cpp:1178
#15 0x00007f81178f9f84 in QQmlObjectCreator::create (this=this@entry=0x7ffe90179eb0, subComponentIndex=subComponentIndex@entry=-1, parent=parent@entry=0x0, interrupt=interrupt@entry=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlobjectcreator.cpp:222
#16 0x00007f81178f99ee in QQmlObjectCreator::createInstance (this=this@entry=0x4d27000, index=index@entry=4, parent=parent@entry=0x0, isContextObject=isContextObject@entry=true) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlobjectcreator.cpp:1091
#17 0x00007f81178f9f84 in QQmlObjectCreator::create (this=0x4d27000, subComponentIndex=3, parent=parent@entry=0x0, interrupt=interrupt@entry=0x0) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlobjectcreator.cpp:222
#18 0x00007f81178857f5 in QQmlComponentPrivate::beginCreate (this=0x4d1d690, context=0x4d1b350) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlcomponent.cpp:880
#19 0x00007f8117883e88 in QQmlComponent::createObject (this=0x22dfd80, args=0x7ffe9017a370) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/qml/qqmlcomponent.cpp:1222
#20 0x00007f81179608cc in QQmlComponent::qt_static_metacall (_o=_o@entry=0x22dfd80, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=6, _a=_a@entry=0x7ffe9017a340) at .moc/moc_qqmlcomponent.cpp:146
#21 0x00007f8117960a45 in QQmlComponent::qt_metacall (this=0x22dfd80, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7ffe9017a340) at .moc/moc_qqmlcomponent.cpp:205
#22 0x00007f8117847c6c in QV4::QObjectMethod::callInternal (this=<optimized out>, callData=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4qobjectwrapper.cpp:1882
#23 0x00007f81178551a9 in call (d=0x7f80ed266080, this=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4object_p.h:278
#24 QV4::Runtime::callProperty (context=0x7ffe9017a560, name=0x7f80ed24e220, callData=0x7f80ed266080) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4runtime.cpp:930
#25 0x00007f80511bf455 in ?? ()
#26 0x0000000004d439a0 in ?? ()
#27 0x0000000001fbb9e0 in ?? ()
#28 0x0003000000000001 in ?? ()
#29 0x00007f8118baf985 in Plasma::DataEnginePrivate::requestSource (this=0x7f80ed2660c0, sourceName=..., newSource=0x7ffe9017a500) at /usr/src/debug/plasma-framework-5.13.0/src/plasma/dataengine.cpp:603
#30 0x00007f8118baf9e2 in Plasma::DataEngine::connectSource (this=0x7f805c09f790, source=..., visualization=0x7f811780b736 <QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*)+438>, pollingInterval=4161277952, intervalAlignment=(unknown: 48441648)) at /usr/src/debug/plasma-framework-5.13.0/src/plasma/dataengine.cpp:124
#31 0x00007f80f8081000 in ?? ()
#32 0x00007f8055877fb0 in ?? ()
#33 0x0000000000000000 in ?? ()

Possible duplicates by query: bug 352998, bug 352917, bug 352140, bug 351570, bug 351483.

Reported using DrKonqi
Comment 1 Henri K 2015-09-23 05:33:56 UTC
Created attachment 94690 [details]
my backtrace

Plasma crashes for me too at startup. Using openSUSE Tumbleweed, Plasma 5.3.95 Qt 5.4.2 Kernel 4.1.6-3 x64.
Comment 2 David Edmundson 2015-09-27 19:07:12 UTC
*** Bug 353145 has been marked as a duplicate of this bug. ***
Comment 3 David Edmundson 2015-09-27 19:07:51 UTC
*** Bug 353250 has been marked as a duplicate of this bug. ***
Comment 4 David Edmundson 2015-09-27 19:10:31 UTC
*** Bug 353239 has been marked as a duplicate of this bug. ***
Comment 5 David Edmundson 2015-09-27 19:12:49 UTC
last time we had a crash in GC it meant that there was an exec() being called in the main thread when called from QML 

I want to find a trace that includes symbols for plasma-workspace so we can see what's happening here.

#25 0x00007f80511bf455 in ?? () #26 0x0000000004d439a0 in ?? () #27 0x0000000001fbb9e0 in ?? () #28 0x0003000000000001 in ?? () #29 0x00007f8118baf985 in Plasma::DataEnginePrivate::requestSource
Comment 6 Henri K 2015-09-29 08:34:07 UTC
Created attachment 94772 [details]
latest backtrace with debug-symbols installed

Deleting plasma-configuration files in ~/.config and ~/.local/share first helped and Plasma didn't crash at startup but now it does it again. In attachemnt is backtrace after I installed more debug-symbols. I'm using openSUSE TW x64, Plasma 5.4.1 and Qt 5.4.2, Kernel 4.1.6-3.2 on a Dell Latitude e5420 laptop with external monitor.
Comment 7 Henri K 2015-09-29 09:03:19 UTC
I get that crash after login when I'm using laptop with external monitor (with HDMI) on and internal monitor off. If external monitor is unplugged I don't seem t crash. System info:
Machine:   System: Dell product: Latitude E5420 version: 01
Mobo: Dell model: 0H5TG2 version: A01 Bios: Dell version: A14 date: 12/26/2013
CPU:       Dual core Intel Core i5-2520M CPU (-MCP-) cache: 3072 KB flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx)
Graphics:  Card: Intel 2nd Generation Core Processor Family Integrated Graphics Controller
X.org: 1.17.2 driver: intel Resolution: 114x37
Comment 8 David Edmundson 2015-09-29 10:33:43 UTC
@Henri
Thanks, but I'm afraid that's a different crash (https://bugs.kde.org/show_bug.cgi?id=344550) fixed with Qt5.5
Comment 9 David Edmundson 2015-10-01 06:49:23 UTC
*** Bug 353392 has been marked as a duplicate of this bug. ***
Comment 10 René Krell 2015-10-01 06:56:26 UTC
(In reply to David Edmundson from comment #5)
> last time we had a crash in GC it meant that there was an exec() being
> called in the main thread when called from QML 
> 
> I want to find a trace that includes symbols for plasma-workspace so we can
> see what's happening here.
> 
> #25 0x00007f80511bf455 in ?? () #26 0x0000000004d439a0 in ?? () #27
> 0x0000000001fbb9e0 in ?? () #28 0x0003000000000001 in ?? () #29
> 0x00007f8118baf985 in Plasma::DataEnginePrivate::requestSource

See my backtrace from the duplicate bug 353392:
#69 0x00007f6e7d20eb55 in Plasma::DataEnginePrivate::requestSource (this=0x7f6e503c40c0, sourceName=..., newSource=0x7ffcfde986d0) at /usr/src/debug/plasma-framework-5.14.0/src/plasma/dataengine.cpp:603
Comment 11 David Edmundson 2015-10-01 07:00:49 UTC
argh, I need to see the sourceName, which is the bit supressed here.

which either means symbols from plasma-workspace where it will have a call from that dataengine

or

mad gdb skills from someone who can reproduce this.

if you get this again if you could:
open in gdb (there's a button in drkonqui)
http://silmor.de/qtstuff.printqstring.php

then type
frame 69
printqs5dynamic sourceName
Comment 12 René Krell 2015-10-01 07:45:12 UTC
(In reply to David Edmundson from comment #11)
> argh, I need to see the sourceName, which is the bit supressed here.
> 
> which either means symbols from plasma-workspace where it will have a call
> from that dataengine
> 
> or
> 
> mad gdb skills from someone who can reproduce this.
> 
> if you get this again if you could:
> open in gdb (there's a button in drkonqui)
> http://silmor.de/qtstuff.printqstring.php
> 
> then type
> frame 69
> printqs5dynamic sourceName

I can reproduce this, but need some advice regarding the gdb:

(gdb) frame 69
#69 0x00007fc11855ab55 in Plasma::DataEnginePrivate::requestSource (this=0x7fc0e6fff0c0, sourceName=..., newSource=0x7ffcabbaa860)
    at /usr/src/debug/plasma-framework-5.14.0/src/plasma/dataengine.cpp:603
603     /usr/src/debug/plasma-framework-5.14.0/src/plasma/dataengine.cpp: No such file or directory.
(gdb) printqs5dynamic sourceName
Undefined command: "printqs5dynamic".  Try "help".
Comment 13 David Edmundson 2015-10-01 07:49:50 UTC
I missed a line, 

copy and paste everything from teh final box here: http://silmor.de/qtstuff.printqstring.php
Comment 14 René Krell 2015-10-01 08:02:13 UTC
(In reply to David Edmundson from comment #13)
> I missed a line, 
> 
> copy and paste everything from teh final box here:
> http://silmor.de/qtstuff.printqstring.php

After setting up $HOME/.gdbinit with the last box from the link:

(gdb) frame 69
#69 0x00007fc11855ab55 in Plasma::DataEnginePrivate::requestSource (this=0x7fc0e6fff0c0, sourceName=..., newSource=0x7ffcabbaa860)
    at /usr/src/debug/plasma-framework-5.14.0/src/plasma/dataengine.cpp:603
603     /usr/src/debug/plasma-framework-5.14.0/src/plasma/dataengine.cpp: No such file or directory.
(gdb) printqs5dynamic sourceName
(Qt5 QString)0x2261f60 length=19: "Cannot evaluate function -- may be inlined
Comment 15 David Edmundson 2015-10-01 08:07:29 UTC
Thanks ever so much

only dataengine with length == 19
devicenotifications

I'll take a look there.

In the meantime if you can install plasma-workspace debug symbols that'd really help too
Comment 16 David Edmundson 2015-10-01 09:31:06 UTC
..unless that's null terminated.

In which case org.kde.activities also fits 

Can someone please install plasma-workspace-dbg
Comment 17 René Krell 2015-10-01 09:53:32 UTC
(In reply to David Edmundson from comment #16)
> Can someone please install plasma-workspace-dbg

I installed all according packages from the openSUSE distribution:
plasma5-workspace-debuginfo, plasma5-workspace-debugsource,plasma5-workspace-libs-debuginfo, plasma5-workspace-branding-openSUSE-debuginfo and all libKF5* and libQt5* debuginfo packages I could find, there are still unresolved lines:
#64 QV4::Runtime::callProperty (context=0x7ffcabbaa8c0, name=0x7fc0ec64a220, callData=0x7fc0e6fff080) at /usr/src/debug/qtdeclarative-opensource-src-5.4.2/src/qml/jsruntime/qv4runtime.cpp:930
#65 0x00007fc040d742d5 in ?? ()
#66 0x0000000002264210 in ?? ()
#67 0x00000000023efb80 in ?? ()
#68 0x0003000000000001 in ?? ()
#69 0x00007fc11855ab55 in Plasma::DataEnginePrivate::requestSource (this=0x7fc0e6fff0c0, sourceName=..., newSource=0x7ffcabbaa860) at /usr/src/debug/plasma-framework-5.14.0/src/plasma/dataengine.cpp:603
#70 0x00007fc11855abb2 in Plasma::DataEngine::connectSource (this=0x7fc050160880, source=..., visualization=0x7fc1171b5736 <QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*)+438>, pollingInterval=3966574592, intervalAlignment=(unknown: 20494912)) at /usr/src/debug/plasma-framework-5.14.0/src/plasma/dataengine.cpp:124
#71 0x00007fc0ec6d2000 in ?? ()
#72 0x00007fc050013910 in ?? ()
#73 0x0000000000000000 in ?? ()

Any idea what might be missing in particular? A packaging problem?
Comment 18 David Edmundson 2015-10-01 10:04:28 UTC
Oh, maybe I'm wrong

that line prior to the missing bits is:
   emit q->sourceAdded(sourceName);

which does go roughly direct to QML
Comment 19 David Edmundson 2015-10-01 10:10:02 UTC
New update (sorry, you all get spammed with my train of thoughts.. but if I don't write things down I lose them)

It can't be the Plasma core declarative import as that connects via a queued connection, so we'd see the eventloop beneath it in the stack

From a grep that leaves:
applets/systemtray/plugin/protocols/dbussystemtray/dbussystemtrayprotocol.cpp:
dataengines/weather/weatherengine.cpp:
runners/solid/solidrunner.cpp:

Top one makes the most sense, as it's then creating an object which matches the trace.

At a guess, removing the system tray is going to stop this crash.
Comment 20 René Krell 2015-10-02 06:26:49 UTC
(In reply to David Edmundson from comment #19)
> At a guess, removing the system tray is going to stop this crash.

Yes sir :-)
It is absolutely sure for me - Plasma is crashing with the system tray. After removing it and restart it comes up smoothly. So what now?
Comment 21 David Edmundson 2015-10-03 22:39:17 UTC
*** Bug 353420 has been marked as a duplicate of this bug. ***
Comment 22 David Edmundson 2015-10-03 22:39:23 UTC
*** Bug 353328 has been marked as a duplicate of this bug. ***
Comment 23 René Krell 2015-10-05 08:58:24 UTC
(In reply to René Krell from comment #20)
> It is absolutely sure for me - Plasma is crashing with the system tray.
> After removing it and restart it comes up smoothly. So what now?

Interesting here is also that after re-adding the system tray no crashes appear any longer for me, just like a configuration migration problem or whatever.
Comment 24 Marco Martin 2016-09-19 11:07:18 UTC
*** Bug 353478 has been marked as a duplicate of this bug. ***
Comment 25 David Edmundson 2016-09-21 23:12:51 UTC
Given I narrowed this down to the applets/systemtray/plugin/protocols/dbussystemtray/dbussystemtrayprotocol.cpp:

and this has been rewritten since Plasma 5.5, I'm going to close this.

We've not got any duplicates newer than Plasma 5.4