Bug 338420

Summary: Crash when clicking on 'kdeconnect' SNI icon
Product: [Plasma] plasmashell Reporter: Elias Probst <mail>
Component: System Tray widgetAssignee: Sebastian Kügler <sebas>
Status: RESOLVED WORKSFORME    
Severity: crash CC: arthur, demm, kde, m_louis30, notmart
Priority: NOR    
Version: master   
Target Milestone: 1.0   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Backtrace of plasmashell crash

Description Elias Probst 2014-08-20 22:36:00 UTC
How to reproduce:

→ Install kdeconnect-kde (git frameworks 0b67371)
→ Configure systray to show 'KDE Connect' item
→ Make sure 'kdeconnectd' is not running / org.kde.kdeconnect is not available via D-Bus
→ Click on the KDE Connect systray item

plasmashell crashes without leaving a usable backtrace.

Last relevant log lines:
kdeconnect: dbus interface not valid
kdeconnect: dbus interface not valid
Application::crashHandler() called with signal 11; recent crashes: 1

The crash might be originating from kdeconnect-kde's libkdeconnectdeclarativeplugin.so, but I feel like plasmashell should handle this more graceful.

KF5/P5 is completely up-to-date from git master.
Qt is 5.3.1.

I'll continue trying to gather a useful BT in the meanwhile and add it here in case I should succeed.
Comment 1 Elias Probst 2014-08-20 22:49:51 UTC
Created attachment 88341 [details]
Backtrace of plasmashell crash

I was now able to get a BT of this crash.
Comment 2 Elias Probst 2014-09-03 09:15:56 UTC
I'm not sure anymore, whether this is strictly related to the (non-)existence of said D-Bus interface.
I was able now to crash plasmashell multiple times even when kdeconnectd was running.
Comment 3 Marco Martin 2014-09-03 09:19:28 UTC
pasting inline

Thread 1 (Thread 0x7f1fe3455800 (LWP 28934)):
#0  QQmlBoundSignalExpression::function (this=this@entry=0x6876810) at ../../include/QtQml/5.3.1/QtQml/private/../../../../../src/qml/qml/qqmlengine_p.h:163
No locals.
#1  0x00007f1fdf452f68 in QQmlBoundSignalExpression::sourceLocation (this=this@entry=0x6876810) at qml/qqmlboundsignal.cpp:162
        f = <optimized out>
        loc = <optimized out>
#2  0x00007f1fdf4326fb in QQmlData::destroyed (this=0x6876610, object=0x6884ff0) at qml/qqmlengine.cpp:1617
        location = {sourceFile = {static null = {<No data fields>}, d = 0x6876478}, line = 6536, column = 56604}
        source = {static null = {<No data fields>}, d = 0x0}
        locationString = {static null = {<No data fields>}, d = 0x7f1fdce2f300 <QArrayData::shared_null>}
        expr = 0x6876810
        next = <optimized out>
        binding = <optimized out>
        signalHandler = 0x688dcf0
        __PRETTY_FUNCTION__ = "void QQmlData::destroyed(QObject*)"
#3  0x00007f1fdcdb338e in QObject::~QObject (this=0x6884ff0, __in_chrg=<optimized out>) at kernel/qobject.cpp:916
        d = 0x68763a0
#4  0x00007f1fe2ecaaf6 in ~QQmlElement (this=0x6884ff0, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:106
No locals.
#5  QQmlPrivate::QQmlElement<QQuickMouseArea>::~QQmlElement (this=0x6884ff0, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:106
No locals.
#6  0x00007f1fdcdaab52 in QObjectPrivate::deleteChildren (this=this@entry=0x6875b80) at kernel/qobject.cpp:1934
No locals.
#7  0x00007f1fdcdb36fc in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1028
        d = <optimized out>
#8  0x00007f1fe2eca006 in ~QQmlElement (this=0x689cd80, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:106
No locals.
#9  QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement (this=0x689cd80, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:106
No locals.
#10 0x00007f1fdcdaab52 in QObjectPrivate::deleteChildren (this=this@entry=0x689aaa0) at kernel/qobject.cpp:1934
No locals.
#11 0x00007f1fdcdb36fc in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1028
        d = <optimized out>
#12 0x00007f1fe2ecab76 in ~QQmlElement (this=0x68846b0, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:106
No locals.
#13 QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement (this=0x68846b0, __in_chrg=<optimized out>) at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:106
No locals.
#14 0x00007f1fdcdaab52 in QObjectPrivate::deleteChildren (this=this@entry=0x6883fa0) at kernel/qobject.cpp:1934
No locals.
#15 0x00007f1fdcdb36fc in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1028
        d = <optimized out>
#16 0x00007f1fcc2d31c6 in ~QQmlElement (this=0x6882420, __in_chrg=<optimized out>) at /usr/include/qt5/QtQml/qqmlprivate.h:106
No locals.
#17 QQmlPrivate::QQmlElement<ToolTip>::~QQmlElement (this=0x6882420, __in_chrg=<optimized out>) at /usr/include/qt5/QtQml/qqmlprivate.h:106
No locals.
#18 0x00007f1fdcdaab52 in QObjectPrivate::deleteChildren (this=this@entry=0x6856190) at kernel/qobject.cpp:1934
No locals.
#19 0x00007f1fdcdb36fc in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1028
        d = <optimized out>
#20 0x00007f1fc5ccf2b6 in ~QQmlElement (this=0x6856130, __in_chrg=<optimized out>) at /usr/include/qt5/QtQml/qqmlprivate.h:106
No locals.
#21 QQmlPrivate::QQmlElement<MouseEventListener>::~QQmlElement (this=0x6856130, __in_chrg=<optimized out>) at /usr/include/qt5/QtQml/qqmlprivate.h:106
No locals.
#22 0x00007f1fdcdacd08 in QObject::event (this=this@entry=0x6856130, e=e@entry=0x6c13d60) at kernel/qobject.cpp:1232
No locals.
#23 0x00007f1fe2eb0063 in QQuickItem::event (this=0x6856130, ev=0x6c13d60) at items/qquickitem.cpp:7118
No locals.
#24 0x00007f1fdda1897c in QApplicationPrivate::notify_helper (this=this@entry=0x2192530, receiver=receiver@entry=0x6856130, e=e@entry=0x6c13d60) at kernel/qapplication.cpp:3522
        consumed = <optimized out>
#25 0x00007f1fdda1da06 in QApplication::notify (this=0x7fffdb092ab0, receiver=0x6856130, e=0x6c13d60) at kernel/qapplication.cpp:3305
        w = 0x6856130
        extra = <optimized out>
        isProxyWidget = <optimized out>
        __PRETTY_FUNCTION__ = "virtual bool QApplication::notify(QObject*, QEvent*)"
        res = <optimized out>
#26 0x00007f1fdcd7cff5 in QCoreApplication::notifyInternal (this=0x7fffdb092ab0, receiver=0x6856130, event=event@entry=0x6c13d60) at kernel/qcoreapplication.cpp:935
        threadData = 0x2187dd0
        loopLevelCounter = {threadData = 0x2187dd0}
        result = false
        cbdata = {0x6856130, 0x6c13d60, 0x7fffdb090d90}
        d = <optimized out>
#27 0x00007f1fdcd7ee47 in sendEvent (event=0x6c13d60, receiver=<optimized out>) at kernel/qcoreapplication.h:237
No locals.
#28 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x2187dd0) at kernel/qcoreapplication.cpp:1539
        e = 0x6c13d60
        pe = <optimized out>
        r = <optimized out>
        unlocker = {m = <synthetic pointer>}
        event_deleter = {d = 0x6c13d60}
        __PRETTY_FUNCTION__ = "static void QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)"
        locker = {val = 35159544}
        startOffset = 0
        i = @0x2187dec: 13
        cleanup = {receiver = 0x0, event_type = 0, data = 0x2187dd0, exceptionCaught = true}
#29 0x00007f1fdcd7f478 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1397
        data = <optimized out>
#30 0x00007f1fdcdd4843 in postEventSourceDispatch (s=0x21ccc00) at kernel/qeventdispatcher_glib.cpp:279
        source = 0x21ccc00
#31 0x00007f1fd70cf884 in g_main_dispatch (context=0x7f1fc8001e00) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3064
        dispatch = 0x7f1fdcdd4830 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x21dc610
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = <optimized out>
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x21ccc00
        current = 0x2188910
        i = 0
#32 g_main_context_dispatch (context=context@entry=0x7f1fc8001e00) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3663
No locals.
#33 0x00007f1fd70cfac8 in g_main_context_iterate (context=context@entry=0x7f1fc8001e00, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>)
    at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3734
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = 7
        fds = 0x5409250
#34 0x00007f1fd70cfb6c in g_main_context_iteration (context=0x7f1fc8001e00, may_block=0) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3795
        retval = <optimized out>
#35 0x00007f1fdcdd3cbc in QEventDispatcherGlib::processEvents (this=0x21cfe60, flags=...) at kernel/qeventdispatcher_glib.cpp:426
        d = 0x21cc5d0
        canWait = false
        savedFlags = {i = 36}
        result = <optimized out>
#36 0x00007f1fdcd7d402 in QCoreApplication::processEvents (flags=..., flags@entry=..., maxtime=maxtime@entry=50) at kernel/qcoreapplication.cpp:1133
        data = 0x2187dd0
        start = {t1 = 49969, t2 = 682224209}
#37 0x00007f1fe1498158 in KDeclarative::QmlObject::createObjectFromComponent (this=0x5aad1b0, component=0x5e36cd0, context=0x6687010, initialProperties=...)
    at /var/tmp/portage/kde-frameworks/kdeclarative-9999/work/kdeclarative-9999/src/kdeclarative/qmlobject.cpp:258
        incubator = {<QQmlIncubator> = {_vptr.QQmlIncubator = 0x7f1fe16ac930 <vtable for KDeclarative::QmlObjectIncubator+16>, d = 0x6b4c5e0}, m_initialProperties = {{d = 0x7f1fdce31900 <QHashData::shared_null>, 
              e = 0x7f1fdce31900 <QHashData::shared_null>}}}
        object = <optimized out>
#38 0x00007f1fe1e0cb2a in PlasmaQuick::AppletQuickItemPrivate::createFullRepresentationItem (this=0x5ab0690) at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999/src/plasmaquick/appletquickitem.cpp:187
        this = 0x5ab0690
#39 0x00007f1fe1e0d865 in PlasmaQuick::AppletQuickItem::setExpanded (this=this@entry=0x5aa7440, expanded=<optimized out>)
    at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999/src/plasmaquick/appletquickitem.cpp:620
No locals.
#40 0x00007f1fe1e117fd in PlasmaQuick::AppletQuickItem::qt_metacall (this=this@entry=0x5aa7440, _c=_c@entry=QMetaObject::WriteProperty, _id=7, _a=_a@entry=0x7fffdb091230)
    at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999_build/src/plasmaquick/moc_appletquickitem.cpp:339
        _v = <optimized out>
#41 0x00007f1fbcb1b867 in AppletInterface::qt_metacall (this=0x5aa7440, _c=QMetaObject::WriteProperty, _id=<optimized out>, _a=0x7fffdb091230)
    at /var/tmp/portage/kde-frameworks/plasma-9999/work/plasma-9999_build/src/scriptengines/qml/moc_appletinterface.cpp:490
No locals.
#42 0x00007f1fdcd89aeb in QMetaProperty::write (this=this@entry=0x7fffdb0912e0, object=object@entry=0x5aa7440, value=...) at kernel/qmetaobject.cpp:2926
        status = -1
        flags = 0
        argv = {0x7fffdb0911f0, 0x7fffdb0911f0, 0x7fffdb0911a0, 0x7fffdb0911b0}
        v = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 1, sc = 1 '\001', us = 1, i = 1, u = 1, l = 1, ul = 1, b = true, d = 4.9406564584124654e-324, f = 1.40129846e-45, real = 4.9406564584124654e-324, 
              ll = 1, ull = 1, o = 0x1, ptr = 0x1, shared = 0x1}, type = 1, is_shared = 0, is_null = 0}}
        t = <optimized out>
#43 0x00007f1fdcdb4c8f in QObject::setProperty (this=0x5aa7440, name=name@entry=0x7f1ec9df5238 "expanded", value=...) at kernel/qobject.cpp:3825
        d = 0x5ab0540
        meta = 0x7f1fbcd373e0 <AppletInterface::staticMetaObject>
        id = <optimized out>
        p = {mobj = 0x7f1fe203a4a0 <PlasmaQuick::AppletQuickItem::staticMetaObject>, handle = 153, idx = 7, menum = {mobj = 0x0, handle = 0}}
#44 0x00007f1ec9de915f in SystemTray::PlasmoidTask::setExpanded (this=0x59cab00, expanded=<optimized out>)
    at /var/tmp/portage/kde-base/plasma-workspace-9999/work/plasma-workspace-9999/applets/systemtray/plugin/protocols/plasmoid/plasmoidtask.cpp:216
No locals.
#45 0x00007f1ec9df3e81 in SystemTray::Task::qt_metacall (this=this@entry=0x59cab00, _c=_c@entry=QMetaObject::WriteProperty, _id=7, _a=_a@entry=0x7fffdb091470)
    at /var/tmp/portage/kde-base/plasma-workspace-9999/work/plasma-workspace-9999_build/applets/systemtray/plugin/moc_task.cpp:356
        _v = <optimized out>
#46 0x00007f1ec9df4267 in SystemTray::PlasmoidTask::qt_metacall (this=0x59cab00, _c=QMetaObject::WriteProperty, _id=<optimized out>, _a=0x7fffdb091470)
    at /var/tmp/portage/kde-base/plasma-workspace-9999/work/plasma-workspace-9999_build/applets/systemtray/plugin/moc_plasmoidtask.cpp:193
No locals.
#47 0x00007f1fdf4460fa in QQmlPropertyPrivate::write (object=object@entry=0x59cab00, property=..., value=..., context=0x6875a10, flags=...) at qml/qqmlproperty.cpp:1322
        a = {0x7fffdb091520, 0x0, 0x7fffdb09142c, 0x7fffdb091410}
        status = -1
        variantType = <optimized out>
        coreIdx = 8
        propertyType = 1
#48 0x00007f1fdf40971c in QV4::QObjectWrapper::setProperty (object=object@entry=0x59cab00, ctx=ctx@entry=0x7fffdb0917a0, property=0x6843978, value=..., value@entry=...) at jsruntime/qv4qobjectwrapper.cpp:549
        v = {d = {data = {c = 1 '\001', uc = 1 '\001', s = 5377, sc = 1 '\001', us = 5377, i = -620161791, u = 3674805505, l = 140736868193537, ul = 140736868193537, b = true, d = 6.9533251677714247e-310, 
              f = -3.85851658e+16, real = 6.9533251677714247e-310, ll = 140736868193537, ull = 140736868193537, o = 0x7fffdb091501, ptr = 0x7fffdb091501, shared = 0x7fffdb091501}, type = 1, is_shared = 0, 
            is_null = 0}}
        callingQmlContext = <optimized out>
        newBinding = <optimized out>
        scope = {engine = 0x3198970, mark = 0x7f1f827ff3a0}
        f = {ptr = 0x7f1f827ff3a0}
        oldBinding = <optimized out>
#49 0x00007f1fdf409dd3 in QV4::QObjectWrapper::setQmlProperty (ctx=0x7fffdb0917a0, qmlContext=<optimized out>, object=0x59cab00, name=<optimized out>, 
    revisionMode=revisionMode@entry=QV4::QObjectWrapper::IgnoreRevision, value=..., value@entry=...) at jsruntime/qv4qobjectwrapper.cpp:446
        local = {<QQmlPropertyRawData> = {{propType = 0, propTypeName = 0x7f1f00000000 ""}, coreIndex = -1, {notifyIndex = -1, arguments = 0xffffffff}, {{revision = 0, metaObjectOffset = -1, {{
                    valueTypeFlags = 65534, valueTypePropType = 65535, valueTypeCoreIndex = 62368}, {overrideIndexIsProperty = 0, overrideIndex = -1}}}, {accessors = 0xfffffffeffff0000, 
                accessorData = 139773310137248}}, flags = 0}, <No data fields>}
        result = <optimized out>
#50 0x00007f1fdf409ee5 in QV4::QObjectWrapper::put (m=0x7f1fa079ae90, name=..., value=...) at jsruntime/qv4qobjectwrapper.cpp:684
        that = 0x7f1fa079ae90
        v4 = 0x3198970
        qmlContext = <optimized out>
#51 0x00007f1fdf4172dd in put (v=..., name=..., this=<optimized out>) at jsruntime/qv4object_p.h:248
No locals.
#52 QV4::Runtime::setProperty (ctx=<optimized out>, object=..., name=..., value=...) at jsruntime/qv4runtime.cpp:560
        scope = {engine = 0x3198970, mark = 0x7f1f827ff398}
        o = <optimized out>
#53 0x00007f1e99cd35bb in ?? ()
No symbol table info available.
#54 0x0000000000000000 in ?? ()
No symbol table info available.
Continuing.

Program received signal SIGTERM, Terminated.
[Switching to Thread 0x7f1fcdcea700 (LWP 28935)]
0x00007f1fdc52963d in poll () at ../sysdeps/unix/syscall-template.S:81
81	../sysdeps/unix/syscall-template.S: No such file or directory.
A debugging session is active.

	Inferior 1 [process 28934] will be detached.

Quit anyway? (y or n) Quitting: Can't detach Thread 0x7f1fbe18d700 (LWP 28947): No such process
Comment 4 David Edmundson 2014-09-23 01:16:24 UTC
Backtrace looks good, confirming.

Looks like that issue of processing other events in the event loop in:
KDeclarative::QmlObject::createObjectFromComponent
Comment 5 Elias Probst 2014-10-29 23:06:36 UTC
(In reply to David Edmundson from comment #4)
> Backtrace looks good, confirming.
> 
> Looks like that issue of processing other events in the event loop in:
> KDeclarative::QmlObject::createObjectFromComponent

@David: So should this be re-assigned to frameworks-kdeclarative? Or is it even an upstream (Qt/QML) bug?
Comment 6 Louis Moureaux 2014-12-21 13:46:14 UTC
Could not reproduce it on Arch Linux, using Plasma 5.1.2, Qt 5.4 and Kdeconnect from the AUR : https://aur.archlinux.org/packages/kdeconnect-frameworks-git (version from package is r646.f204fae-1)
Comment 7 David Edmundson 2014-12-21 15:15:20 UTC
Thanks m_louis30

I altered the behaviour of:
KDeclarative::QmlObject::createObjectFromComponent a few weeks ago so it could be that.

Either way, lets assume it's fixed unless we here otherwise.
Comment 8 Elias Probst 2014-12-22 23:07:20 UTC
Sorry for the lack of feedback from my side. I was busy during the last days.
Can't reproduce this anymore, so I'd say this is fixed now.