Bug 353870 - Plasma crashes on quit
Summary: Plasma crashes on quit
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: master
Platform: unspecified Linux
: NOR crash
Target Milestone: 1.0
Assignee: David Edmundson
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-10-13 17:53 UTC by Kai Uwe Broulik
Modified: 2015-10-14 17:22 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kai Uwe Broulik 2015-10-13 17:53:20 UTC
Application: plasmashell (5.4.90)
 (Compiled from sources)
Qt Version: 5.4.2
Operating System: Linux 4.2.0-16-generic x86_64
Distribution: Ubuntu Wily Werewolf (development branch)

-- Information about the crash:
- What I was doing when the application crashed:
kquitapp5 plasmashell
Boom. Somewhere in system tray it seems.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f04a6e49800 (LWP 14880))]

Thread 8 (Thread 0x7f0492246700 (LWP 14881)):
#0  0x00007f04a15438dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f04a55d1bd2 in poll (__timeout=-1, __nfds=1, __fds=0x7f0492245cc0) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x8bac70, cond=cond@entry=0x8bacb0, vector=vector@entry=0x0, count=count@entry=0x0) at ../../src/xcb_conn.c:459
#3  0x00007f04a55d374f in xcb_wait_for_event (c=0x8bac70) at ../../src/xcb_in.c:623
#4  0x00007f04945909e9 in QXcbEventReader::run (this=0x8c5330) at qxcbconnection.cpp:1105
#5  0x00007f04a1c362be in QThreadPrivate::start (arg=0x8c5330) at thread/qthread_unix.cpp:337
#6  0x00007f04a0d256aa in start_thread (arg=0x7f0492246700) at pthread_create.c:333
#7  0x00007f04a154eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 7 (Thread 0x7f048b9d9700 (LWP 14882)):
#0  0x00007f04a15438dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f049e2f01ec in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f049e2f02fc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f04a1e6d29b in QEventDispatcherGlib::processEvents (this=0x7f04840008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#4  0x00007f04a1e1375a in QEventLoop::exec (this=this@entry=0x7f048b9d8da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#5  0x00007f04a1c313d4 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#6  0x00007f04a4459f85 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007f04a1c362be in QThreadPrivate::start (arg=0x9a0950) at thread/qthread_unix.cpp:337
#8  0x00007f04a0d256aa in start_thread (arg=0x7f048b9d9700) at pthread_create.c:333
#9  0x00007f04a154eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7f047f5fe700 (LWP 14883)):
#0  0x00007f04a153f49d in read () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f049e3334e0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f049e2efcd4 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f049e2f0190 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f049e2f02fc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f04a1e6d29b in QEventDispatcherGlib::processEvents (this=0x7f04780008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#6  0x00007f04a1e1375a in QEventLoop::exec (this=this@entry=0x7f047f5fdda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#7  0x00007f04a1c313d4 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#8  0x00007f04a4459f85 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#9  0x00007f04a1c362be in QThreadPrivate::start (arg=0xcc8480) at thread/qthread_unix.cpp:337
#10 0x00007f04a0d256aa in start_thread (arg=0x7f047f5fe700) at pthread_create.c:333
#11 0x00007f04a154eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7f047cd56700 (LWP 14887)):
#0  0x00007f04a15438dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f049e2f01ec in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f049e2f02fc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f04a1e6d29b in QEventDispatcherGlib::processEvents (this=0x7f04740008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#4  0x00007f04a1e1375a in QEventLoop::exec (this=this@entry=0x7f047cd55da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#5  0x00007f04a1c313d4 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#6  0x00007f04a4459f85 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007f04a1c362be in QThreadPrivate::start (arg=0xe914a0) at thread/qthread_unix.cpp:337
#8  0x00007f04a0d256aa in start_thread (arg=0x7f047cd56700) at pthread_create.c:333
#9  0x00007f04a154eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f046f3cf700 (LWP 14888)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f04a689a114 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#2  0x00007f04a689a159 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Script.so.5
#3  0x00007f04a0d256aa in start_thread (arg=0x7f046f3cf700) at pthread_create.c:333
#4  0x00007f04a154eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f03ec787700 (LWP 14889)):
#0  0x00007f04a153f49d in read () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f049e3334e0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f049e2efcd4 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f049e2f0190 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f049e2f02fc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f04a1e6d29b in QEventDispatcherGlib::processEvents (this=0x7f03e40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#6  0x00007f04a1e1375a in QEventLoop::exec (this=this@entry=0x7f03ec786d50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#7  0x00007f04a1c313d4 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#8  0x00007f04a4dd5ef6 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#9  0x00007f04a1c362be in QThreadPrivate::start (arg=0x11b0ab0) at thread/qthread_unix.cpp:337
#10 0x00007f04a0d256aa in start_thread (arg=0x7f03ec787700) at pthread_create.c:333
#11 0x00007f04a154eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f03dc86a700 (LWP 14899)):
#0  0x00007f04a15438dd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f049e2f01ec in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f049e2f02fc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f04a1e6d29b in QEventDispatcherGlib::processEvents (this=0x7f03d80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:420
#4  0x00007f04a1e1375a in QEventLoop::exec (this=this@entry=0x7f03dc869d80, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#5  0x00007f04a1c313d4 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:503
#6  0x00007f03deb046b7 in KCupsConnection::run() () from /usr/lib/x86_64-linux-gnu/libkcupslib.so
#7  0x00007f04a1c362be in QThreadPrivate::start (arg=0x31ef330) at thread/qthread_unix.cpp:337
#8  0x00007f04a0d256aa in start_thread (arg=0x7f03dc86a700) at pthread_create.c:333
#9  0x00007f04a154eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f04a6e49800 (LWP 14880)):
[KCrash Handler]
#6  0x00007f03e1f17791 in QHash<QString, int>::isEmpty() const () from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/systemtray/libsystemtrayplugin.so
#7  0x00007f03e1f16418 in QHash<QString, int>::remove(QString const&) () from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/systemtray/libsystemtrayplugin.so
#8  0x00007f03e1f138e7 in SystemTray::PlasmoidProtocol::newTask(QString const&)::{lambda()#1}::operator()() const () from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/systemtray/libsystemtrayplugin.so
#9  0x00007f03e1f154e9 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, SystemTray::PlasmoidProtocol::newTask(QString const&)::{lambda()#1}>::call({lambda()#1}, void**) () from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/systemtray/libsystemtrayplugin.so
#10 0x00007f03e1f153ef in void QtPrivate::Functor<SystemTray::PlasmoidProtocol::newTask(QString const&)::{lambda()#1}, 0>::call<QtPrivate::List<>, void>({lambda()#1}&, void*, {lambda()#1}&*) () from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/systemtray/libsystemtrayplugin.so
#11 0x00007f03e1f15240 in QtPrivate::QFunctorSlotObject<SystemTray::PlasmoidProtocol::newTask(QString const&)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () from /usr/lib/x86_64-linux-gnu/qt5/qml/org/kde/private/systemtray/libsystemtrayplugin.so
#12 0x00007f04a1e46617 in QtPrivate::QSlotObjectBase::call (a=0x7ffe48f515d0, r=0x2652740, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:124
#13 QMetaObject::activate (sender=sender@entry=0x2652740, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe48f515d0) at kernel/qobject.cpp:3702
#14 0x00007f04a1e46f87 in QMetaObject::activate (sender=sender@entry=0x2652740, m=m@entry=0x7f04a20430e0 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe48f515d0) at kernel/qobject.cpp:3582
#15 0x00007f04a1e4702f in QObject::destroyed (this=this@entry=0x2652740, _t1=_t1@entry=0x2652740) at .moc/moc_qobject.cpp:206
#16 0x00007f04a1e4e19a in QObject::~QObject (this=0x2652740, __in_chrg=<optimized out>) at kernel/qobject.cpp:903
#17 0x00007f04a5317016 in Plasma::Applet::~Applet() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#18 0x00007f04a5317046 in Plasma::Applet::~Applet() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#19 0x00007f04a5332fd4 in Plasma::ContainmentPrivate::~ContainmentPrivate() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#20 0x00007f04a531bf09 in Plasma::Containment::~Containment() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#21 0x00007f04a531bf54 in Plasma::Containment::~Containment() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#22 0x00007f04a1e44d2b in QObjectPrivate::deleteChildren (this=this@entry=0xfb1710) at kernel/qobject.cpp:1950
#23 0x00007f04a1e4e620 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1030
#24 0x00007f04a5317016 in Plasma::Applet::~Applet() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#25 0x00007f04a5317046 in Plasma::Applet::~Applet() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#26 0x00007f04a5332fd4 in Plasma::ContainmentPrivate::~ContainmentPrivate() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#27 0x00007f04a531bf09 in Plasma::Containment::~Containment() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#28 0x00007f04a531bf54 in Plasma::Containment::~Containment() () from /usr/lib/x86_64-linux-gnu/libKF5Plasma.so.5
#29 0x00000000004a4f30 in void qDeleteAll<QList<Plasma::Containment*>::const_iterator>(QList<Plasma::Containment*>::const_iterator, QList<Plasma::Containment*>::const_iterator) ()
#30 0x00000000004a0915 in void qDeleteAll<QList<Plasma::Containment*> >(QList<Plasma::Containment*> const&) ()
#31 0x00000000004911a4 in ShellCorona::~ShellCorona() ()
#32 0x000000000049130c in ShellCorona::~ShellCorona() ()
#33 0x00007f04a1e44d2b in QObjectPrivate::deleteChildren (this=this@entry=0x980880) at kernel/qobject.cpp:1950
#34 0x00007f04a1e4e620 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1030
#35 0x00000000004afa66 in ShellManager::~ShellManager() ()
#36 0x00000000004afa96 in ShellManager::~ShellManager() ()
#37 0x00007f04a1e47670 in QObject::event (this=0x93e2f0, e=<optimized out>) at kernel/qobject.cpp:1236
#38 0x00007f04a28f3b8c in QApplicationPrivate::notify_helper (this=this@entry=0x8add50, receiver=receiver@entry=0x93e2f0, e=e@entry=0x36ec330) at kernel/qapplication.cpp:3720
#39 0x00007f04a28f9230 in QApplication::notify (this=0x7ffe48f51fb0, receiver=0x93e2f0, e=0x36ec330) at kernel/qapplication.cpp:3503
#40 0x00007f04a1e15f1b in QCoreApplication::notifyInternal (this=0x7ffe48f51fb0, receiver=0x93e2f0, event=event@entry=0x36ec330) at kernel/qcoreapplication.cpp:935
#41 0x00007f04a1e18057 in QCoreApplication::sendEvent (event=0x36ec330, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:228
#42 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=52, data=0x8a2df0) at kernel/qcoreapplication.cpp:1552
#43 0x00007f04a1e18588 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=52) at kernel/qcoreapplication.cpp:1410
#44 0x00007f04a1e1b309 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1195
#45 0x000000000046fa05 in main ()

Reported using DrKonqi
Comment 1 Martin Klapetek 2015-10-14 16:57:44 UTC
I can reproduce with latest kubuntu ci packages (master~ish).
Comment 2 David Edmundson 2015-10-14 17:22:02 UTC
Git commit 030033bd9ca74e7770408b90aae06f577db28737 by David Edmundson.
Committed on 14/10/2015 at 17:20.
Pushed by davidedmundson into branch 'master'.

Disconnect lambdas when "this" is destroyed
REVIEW: 125639

M  +2    -2    applets/systemtray/plugin/protocols/plasmoid/plasmoidprotocol.cpp

http://commits.kde.org/plasma-workspace/030033bd9ca74e7770408b90aae06f577db28737