Bug 413940 - Crash in DBus handling after error in XML parsing
Summary: Crash in DBus handling after error in XML parsing
Status: REPORTED
Alias: None
Product: kactivitymanagerd
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Méven Car
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-11-08 10:04 UTC by David Edmundson
Modified: 2019-11-14 01:44 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Edmundson 2019-11-08 10:04:33 UTC
Crashed whilst generally getting on with life my side. Seemingly from doing something with a GTK app that caused it to read some invalid XML and shutdown. The fact that it crashes in DBus stuff is probably a misleading output


Application: kactivitymanagerd (kactivitymanagerd), signal: Aborted
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7efee5188e80 (LWP 641))]

Thread 5 (Thread 0x7efee25f3700 (LWP 648)):
#0  0x00007efee84e59ef in poll () from /usr/lib/libc.so.6
#1  0x00007efee58bc170 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007efee58bc241 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007efee8d0e518 in QEventDispatcherGlib::processEvents (this=0x7efecc000b60, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#4  0x00007efee8c742e3 in QEventLoop::processEvents (this=0x7efee25f2d00, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventloop.cpp:138
#5  0x00007efee8c7461d in QEventLoop::exec (this=0x7efee25f2d00, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventloop.cpp:225
#6  0x00007efee8a08fd4 in QThread::exec (this=0x56319a1b6d50) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qthread.cpp:536
#7  0x00005631985b9f1e in runInQThread<Features>()::Thread::run() (this=0x56319a1b6d50) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Application.cpp:84
#8  0x00007efee8a0be91 in QThreadPrivate::start (arg=0x56319a1b6d50) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qthread_unix.cpp:342
#9  0x00007efee7e0f4cf in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007efee84f02d3 in clone () from /usr/lib/libc.so.6

Thread 4 (Thread 0x7efee2df4700 (LWP 647)):
[KCrash Handler]
#6  0x00007efee842cf25 in raise () from /usr/lib/libc.so.6
#7  0x00007efee8416897 in abort () from /usr/lib/libc.so.6
#8  0x00007efee8a00dc8 in qt_message_fatal (context=..., message=...) at /home/david/projects/qt/src/qtbase/src/corelib/global/qlogging.cpp:1894
#9  0x00007efee89fd406 in QMessageLogger::fatal (this=0x7efee2df33d0, msg=0x7efee8db3d70 "ASSERT failure in %s: \"%s\", file %s, line %d") at /home/david/projects/qt/src/qtbase/src/corelib/global/qlogging.cpp:893
#10 0x00007efee89f3c13 in qt_assert_x (where=0x7efee8ec5d11 "QCoreApplication::sendEvent", what=0x7efed0003018 "Cannot send events to objects owned by a different thread. Current thread 0x0x56319a1b6d70. Receiver '' (of type 'KSMServer::Private') was created in thread 0x0x56319a15e110", file=0x7efee8ec58e0 "/home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp", line=575) at /home/david/projects/qt/src/qtbase/src/corelib/global/qglobal.cpp:3350
#11 0x00007efee8c76dea in QCoreApplicationPrivate::checkReceiverThread (receiver=0x56319a1b6750) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:575
#12 0x00007efee9cdd123 in QApplication::notify (this=0x7ffc76e4f658, receiver=0x56319a1b6750, e=0x7efee2df3890) at /home/david/projects/qt/src/qtbase/src/widgets/kernel/qapplication.cpp:2879
#13 0x00007efee8c77bf7 in QCoreApplication::notifyInternal2 (receiver=0x56319a1b6750, event=0x7efee2df3890) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1092
#14 0x00007efee8c78604 in QCoreApplication::sendEvent (receiver=0x56319a1b6750, event=0x7efee2df3890) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1487
#15 0x00007efee8cc003c in QObjectPrivate::setParent_helper (this=0x56319a1b2b60, o=0x0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:2166
#16 0x00007efee8cbe136 in QObject::~QObject (this=0x7efedc0058f0, __in_chrg=<optimized out>) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:1118
#17 0x00007efee90f6152 in QDBusServiceWatcher::~QDBusServiceWatcher (this=0x7efedc0058f0, __in_chrg=<optimized out>) at /home/david/projects/qt/src/qtbase/src/dbus/qdbusservicewatcher.cpp:258
#18 0x00007efee90f616e in QDBusServiceWatcher::~QDBusServiceWatcher (this=0x7efedc0058f0, __in_chrg=<optimized out>) at /home/david/projects/qt/src/qtbase/src/dbus/qdbusservicewatcher.cpp:260
#19 0x00005631985b525f in std::default_delete<QDBusServiceWatcher>::operator() (this=0x56319a1b6760, __ptr=0x7efedc0058f0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:81
#20 0x00005631985b50d0 in std::unique_ptr<QDBusServiceWatcher, std::default_delete<QDBusServiceWatcher> >::~unique_ptr (this=0x56319a1b6760) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:284
#21 0x00005631985b2739 in KSMServer::Private::~Private (this=0x56319a1b6750) at src/service/kactivitymanagerd_autogen/G3A5SBWXOD/../../../../../../../../src/kde/workspace/kactivitymanagerd/src/service/ksmserver/KSMServer_p.h:37
#22 0x00005631985b276c in KSMServer::Private::~Private (this=0x56319a1b6750) at src/service/kactivitymanagerd_autogen/G3A5SBWXOD/../../../../../../../../src/kde/workspace/kactivitymanagerd/src/service/ksmserver/KSMServer_p.h:37
#23 0x00005631985d380f in std::default_delete<KSMServer::Private>::operator() (this=0x7efedc005920, __ptr=0x56319a1b6750) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:81
#24 0x00005631985d37a0 in std::unique_ptr<KSMServer::Private, std::default_delete<KSMServer::Private> >::~unique_ptr (this=0x7efedc005920) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:284
#25 0x00005631985d2bf5 in kamd::utils::d_ptr<KSMServer::Private>::~d_ptr (this=0x7efedc005920) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/utils/d_ptr_implementation.h:45
#26 0x00005631985d1885 in KSMServer::~KSMServer (this=0x7efedc005910) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/ksmserver/KSMServer.cpp:101
#27 0x00005631985d18bc in KSMServer::~KSMServer (this=0x7efedc005910) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/ksmserver/KSMServer.cpp:100
#28 0x00007efee8cbfcbb in QObjectPrivate::deleteChildren (this=0x56319a1b1d90) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:2123
#29 0x00007efee8cbe0d0 in QObject::~QObject (this=0x56319a1b19e0, __in_chrg=<optimized out>) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:1107
#30 0x00007efeea4fc021 in Module::~Module (this=0x56319a1b19e0) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Module.cpp:54
#31 0x00005631985c1661 in Activities::~Activities (this=0x56319a1b19e0) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Activities.cpp:520
#32 0x00005631985c168c in Activities::~Activities (this=0x56319a1b19e0) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Activities.cpp:519
#33 0x00005631985b9d8f in std::default_delete<Activities>::operator() (this=0x7efee2df3d60, __ptr=0x56319a1b19e0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:81
#34 0x00005631985b9ba0 in std::unique_ptr<Activities, std::default_delete<Activities> >::~unique_ptr (this=0x7efee2df3d60) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:284
#35 0x00005631985b9afa in runInQThread<Activities>()::Thread::run() (this=0x56319a1b6d70) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Application.cpp:85
#36 0x00007efee8a0be91 in QThreadPrivate::start (arg=0x56319a1b6d70) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qthread_unix.cpp:342
#37 0x00007efee7e0f4cf in start_thread () from /usr/lib/libpthread.so.0
#38 0x00007efee84f02d3 in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7efee3e22700 (LWP 645)):
#0  0x00007efee84e59ef in poll () from /usr/lib/libc.so.6
#1  0x00007efee58bc170 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007efee58bc241 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007efee8d0e518 in QEventDispatcherGlib::processEvents (this=0x7efed4000b60, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:425
#4  0x00007efee8c742e3 in QEventLoop::processEvents (this=0x7efee3e21cf0, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventloop.cpp:138
#5  0x00007efee8c7461d in QEventLoop::exec (this=0x7efee3e21cf0, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventloop.cpp:225
#6  0x00007efee8a08fd4 in QThread::exec (this=0x7efee913adc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qthread.cpp:536
#7  0x00007efee907f379 in QDBusConnectionManager::run (this=0x7efee913adc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /home/david/projects/qt/src/qtbase/src/dbus/qdbusconnection.cpp:179
#8  0x00007efee8a0be91 in QThreadPrivate::start (arg=0x7efee913adc0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qthread_unix.cpp:342
#9  0x00007efee7e0f4cf in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007efee84f02d3 in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7efee462f700 (LWP 643)):
#0  0x00007efee84e59ef in poll () from /usr/lib/libc.so.6
#1  0x00007efee8039630 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007efee803b2db in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007efee5022052 in QXcbEventQueue::run (this=0x56319a17e280) at /home/david/projects/qt/src/qtbase/src/plugins/platforms/xcb/qxcbeventqueue.cpp:228
#4  0x00007efee8a0be91 in QThreadPrivate::start (arg=0x56319a17e280) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qthread_unix.cpp:342
#5  0x00007efee7e0f4cf in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007efee84f02d3 in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7efee5188e80 (LWP 641)):
#0  0x00007efee7e15c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007efee8a1906e in QWaitConditionPrivate::wait (this=0x56319a1b2cd0, deadline=...) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:146
#2  0x00007efee8a18ce2 in QWaitCondition::wait (this=0x56319a1b20c8, mutex=0x56319a1b20a8, deadline=...) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:225
#3  0x00007efee8a18bb6 in QWaitCondition::wait (this=0x56319a1b20c8, mutex=0x56319a1b20a8, time=18446744073709551615) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qwaitcondition_unix.cpp:208
#4  0x00007efee8a0ca31 in QThread::wait (this=0x56319a1b6d70, time=18446744073709551615) at /home/david/projects/qt/src/qtbase/src/corelib/thread/qthread_unix.cpp:768
#5  0x00005631985b67df in Application::~Application (this=0x7ffc76e4d758) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Application.cpp:243
#6  0x00007efee1de59b6 in BookmarkHandler::startElement (this=0x7ffc76e4e750, qName=..., attributes=...) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/plugins/gtk-eventspy/GtkEventSpy.cpp:153
#7  0x00007efee1ccd3b6 in QXmlSimpleReaderPrivate::processElementEmptyTag (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3788
#8  0x00007efee1ccd1ec in QXmlSimpleReaderPrivate::parseElement (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3756
#9  0x00007efee1ccf0b5 in QXmlSimpleReaderPrivate::parseContent (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:4215
#10 0x00007efee1ccd084 in QXmlSimpleReaderPrivate::parseElement (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3735
#11 0x00007efee1ccf0b5 in QXmlSimpleReaderPrivate::parseContent (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:4215
#12 0x00007efee1ccd084 in QXmlSimpleReaderPrivate::parseElement (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3735
#13 0x00007efee1ccf0b5 in QXmlSimpleReaderPrivate::parseContent (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:4215
#14 0x00007efee1ccd084 in QXmlSimpleReaderPrivate::parseElement (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3735
#15 0x00007efee1ccf0b5 in QXmlSimpleReaderPrivate::parseContent (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:4215
#16 0x00007efee1ccd084 in QXmlSimpleReaderPrivate::parseElement (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3735
#17 0x00007efee1ccf0b5 in QXmlSimpleReaderPrivate::parseContent (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:4215
#18 0x00007efee1ccd084 in QXmlSimpleReaderPrivate::parseElement (this=0x56319a1e0460) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3735
#19 0x00007efee1ccb889 in QXmlSimpleReaderPrivate::parseBeginOrContinue (this=0x56319a1e0460, state=1, incremental=false) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3281
#20 0x00007efee1ccb6a5 in QXmlSimpleReader::parse (this=0x7ffc76e4e740, input=0x7ffc76e4e730, incremental=false) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3223
#21 0x00007efee1ccb4aa in QXmlSimpleReader::parse (this=0x7ffc76e4e740, input=...) at /home/david/projects/qt/src/qtbase/src/xml/sax/qxml.cpp:3160
#22 0x00007efee1de4d36 in GtkEventSpyPlugin::fileUpdated (this=0x56319a1bc470, filename=...) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/plugins/gtk-eventspy/GtkEventSpy.cpp:189
#23 0x00007efee1de9329 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (GtkEventSpyPlugin::*)(QString const&)>::call (f=(void (GtkEventSpyPlugin::*)(GtkEventSpyPlugin * const, const QString &)) 0x7efee1de4b80 <GtkEventSpyPlugin::fileUpdated(QString const&)>, o=0x56319a1bc470, arg=0x7ffc76e4eac0) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:152
#24 0x00007efee1de9278 in QtPrivate::FunctionPointer<void (GtkEventSpyPlugin::*)(QString const&)>::call<QtPrivate::List<QString const&>, void> (f=(void (GtkEventSpyPlugin::*)(GtkEventSpyPlugin * const, const QString &)) 0x7efee1de4b80 <GtkEventSpyPlugin::fileUpdated(QString const&)>, o=0x56319a1bc470, arg=0x7ffc76e4eac0) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:185
#25 0x00007efee1de9165 in QtPrivate::QSlotObject<void (GtkEventSpyPlugin::*)(QString const&), QtPrivate::List<QString const&>, void>::impl (which=1, this_=0x56319a1c2400, r=0x56319a1bc470, a=0x7ffc76e4eac0, ret=0x0) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:414
#26 0x00007efee8c89b49 in QtPrivate::QSlotObjectBase::call (this=0x56319a1c2400, r=0x56319a1bc470, a=0x7ffc76e4eac0) at ../../include/QtCore/../../../../src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394
#27 0x00007efee8ccb3d8 in doActivate<false> (sender=0x56319a1c75b0, signal_index=4, argv=0x7ffc76e4eac0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:3870
#28 0x00007efee8cc4db5 in QMetaObject::activate (sender=0x56319a1c75b0, m=0x7efee92cfe78 <KDirWatch::staticMetaObject>, local_signal_index=1, argv=0x7ffc76e4eac0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:3930
#29 0x00007efee921e826 in KDirWatch::created (this=0x56319a1c75b0, _t1=...) at src/lib/KF5CoreAddons_autogen/include/moc_kdirwatch.cpp:178
#30 0x00007efee921e79d in KDirWatch::setCreated (this=0x56319a1c75b0, _file=...) at /home/david/projects/kde5/src/frameworks/kcoreaddons/src/lib/io/kdirwatch.cpp:1997
#31 0x00007efee921f831 in KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&)::$_6::operator()() const (this=0x56319a1dfc00) at /home/david/projects/kde5/src/frameworks/kcoreaddons/src/lib/io/kdirwatch.cpp:1409
#32 0x00007efee921f7d6 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&)::$_6>::call(KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&)::$_6&, void**) (f=..., arg=0x56319a198318) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:146
#33 0x00007efee921f7a1 in QtPrivate::Functor<KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&)::$_6, 0>::call<QtPrivate::List<>, void>(KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&)::$_6&, void*, void**) (f=..., arg=0x56319a198318) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:256
#34 0x00007efee921f72c in QtPrivate::QFunctorSlotObject<KDirWatchPrivate::emitEvent(KDirWatchPrivate::Entry*, int, QString const&)::$_6, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x56319a1dfbf0, r=0x56319a1c75b0, a=0x56319a198318, ret=0x0) at /opt/qt5/include/QtCore/qobjectdefs_impl.h:439
#35 0x00007efee8c89b49 in QtPrivate::QSlotObjectBase::call (this=0x56319a1dfbf0, r=0x56319a1c75b0, a=0x56319a198318) at ../../include/QtCore/../../../../src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394
#36 0x00007efee8cbd3eb in QMetaCallEvent::placeMetaCall (this=0x56319a1982d0, object=0x56319a1c75b0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:619
#37 0x00007efee8cbe4d7 in QObject::event (this=0x56319a1c75b0, e=0x56319a1982d0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qobject.cpp:1339
#38 0x00007efee9ce033f in QApplicationPrivate::notify_helper (this=0x56319a15df20, receiver=0x56319a1c75b0, e=0x56319a1982d0) at /home/david/projects/qt/src/qtbase/src/widgets/kernel/qapplication.cpp:3693
#39 0x00007efee9cdd693 in QApplication::notify (this=0x7ffc76e4f658, receiver=0x56319a1c75b0, e=0x56319a1982d0) at /home/david/projects/qt/src/qtbase/src/widgets/kernel/qapplication.cpp:3033
#40 0x00007efee8c77bf7 in QCoreApplication::notifyInternal2 (receiver=0x56319a1c75b0, event=0x56319a1982d0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1092
#41 0x00007efee8c78604 in QCoreApplication::sendEvent (receiver=0x56319a1c75b0, event=0x56319a1982d0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1487
#42 0x00007efee8c79226 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x56319a15e090) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1832
#43 0x00007efee8c78b72 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1691
#44 0x00007efee8d0dd8e in postEventSourceDispatch (s=0x56319a1a3c40) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:277
#45 0x00007efee58ba3ee in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#46 0x00007efee58bc201 in ?? () from /usr/lib/libglib-2.0.so.0
#47 0x00007efee58bc241 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#48 0x00007efee8d0e4e9 in QEventDispatcherGlib::processEvents (this=0x56319a160960, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423
#49 0x00007efee502497c in QXcbGlibEventDispatcher::processEvents (this=0x56319a160960, flags=...) at /home/david/projects/qt/src/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:143
#50 0x00007efee8c742e3 in QEventLoop::processEvents (this=0x7ffc76e4f560, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventloop.cpp:138
#51 0x00007efee8c7461d in QEventLoop::exec (this=0x7ffc76e4f560, flags=...) at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qeventloop.cpp:225
#52 0x00007efee8c78456 in QCoreApplication::exec () at /home/david/projects/qt/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1400
#53 0x00007efee942196a in QGuiApplication::exec () at /home/david/projects/qt/src/qtbase/src/gui/kernel/qguiapplication.cpp:1845
#54 0x00007efee9cdcec9 in QApplication::exec () at /home/david/projects/qt/src/qtbase/src/widgets/kernel/qapplication.cpp:2833
#55 0x00005631985b6b99 in main (argc=1, argv=0x7ffc76e4f768) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Application.cpp:307
[Inferior 1 (process 641) detached]
Comment 1 Ivan Čukić 2019-11-09 09:14:02 UTC
I'm reassigning to Meven as he created the Gtk plugin.
Comment 2 David Edmundson 2019-11-10 17:29:59 UTC
Git commit 35e5dc950e8fe2dfba46040495e21b17ed580dc1 by David Edmundson.
Committed on 10/11/2019 at 17:29.
Pushed by davidedmundson into branch 'master'.

Remove pointless QDBusServiceWatcher

Summary:
KActivitymanagerd's ksmserver has a QDBusServiceWatcher in order to
recreate a QDBusInterface when the service goes away. There is no need
to do this, a call to a given method to a given service will work
regardless, dispatching to the correct client is all internal to
dbus-daemon.

QDBusAbstractInterface has it's own internal QDBusServiceWatcher anyway
so we don't get any behavioural differences if we check isValid.

This is worth fixing as this class is moved threads and we end up with
newly created children in a mess.

Test Plan:

Reviewers: #plasma, apol

Reviewed By: apol

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D25205

M  +3    -45   src/service/ksmserver/KSMServer.cpp
M  +0    -3    src/service/ksmserver/KSMServer_p.h

https://commits.kde.org/kactivitymanagerd/35e5dc950e8fe2dfba46040495e21b17ed580dc1
Comment 3 Méven Car 2019-11-11 09:21:37 UTC
David Did you get a warning such as ?

org.kde.kactivities.plugin.gtk-eventspy: could not parse QFileInfo(/home/david/.local/share/recently-used.xbel) error was  "error triggered by consumer"

My initial hypothesis looking at the traces was that a new ~/.local/share/recently-used.xbel file had been created and the gtk-eventspy plugin tried to read it before it was completely written. But I could not reproduce the crash, instead getting the expected warning mentionned.
So I am not sure it is an xml parsing error that causes on its own the crash.

And Because of those lines in particular:

#5  0x00005631985b67df in Application::~Application (this=0x7ffc76e4d758) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Application.cpp:243
#6  0x00007efee1de59b6 in BookmarkHandler::startElement (this=0x7ffc76e4e750, qName=..., attributes=...) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/plugins/gtk-eventspy/GtkEventSpy.cpp:153

The parsing jumps straight to the destructor, that is triggered from elsewhere I would guess.

I don't get :
#32 0x00005631985c168c in Activities::~Activities (this=0x56319a1b19e0) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Activities.cpp:519
#33 0x00005631985b9d8f in std::default_delete<Activities>::operator() (this=0x7efee2df3d60, __ptr=0x56319a1b19e0) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:81
#34 0x00005631985b9ba0 in std::unique_ptr<Activities, std::default_delete<Activities> >::~unique_ptr (this=0x7efee2df3d60) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../include/c++/9.2.0/bits/unique_ptr.h:284
#35 0x00005631985b9afa in runInQThread<Activities>()::Thread::run() (this=0x56319a1b6d70) at /home/david/projects/kde5/src/kde/workspace/kactivitymanagerd/src/service/Application.cpp:85

Right after runInQThread<Activities> is called and a std::unique_ptr<Activities> is instanciated, std::default_delete<Activities> and ~Activities are called.
Comment 4 David Edmundson 2019-11-14 01:44:50 UTC
Aha!

The class Application is shadowed inside GtkEventSpy

GDB is getting confused on that. 

It absolutely makes sense for us to be in Application's destructor if we're talking about the struct declared inside GtkEventSpy.cpp rather than Application.h