Application: plasmashell (5.8.5) Qt Version: 5.8.0 Frameworks Version: 5.30.0 Operating System: Linux 4.9.6-1-ARCH x86_64 Distribution (Platform): Archlinux Packages -- Information about the crash: When killing pulseaudio with pulseaudio -k, plasma crashes and restarts immediately. The crash can be reproduced every time. -- Backtrace: Application: Plazma (plasmashell), signal: Aborted Using host libthread_db library "/usr/lib/libthread_db.so.1". [Current thread is 1 (Thread 0x7fa5b011b800 (LWP 642))] Thread 9 (Thread 0x7fa4d2ba1700 (LWP 4317)): #0 0x00007fa5a978c48d in poll () at /usr/lib/libc.so.6 #1 0x00007fa5a2aef786 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa5a2aef89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa5aa0b24db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa4c80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007fa5aa05bd0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa4d2ba0da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #5 0x00007fa5a9e7dae3 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:507 #6 0x00007fa5ad204025 in () at /usr/lib/libQt5Qml.so.5 #7 0x00007fa5a9e82748 in QThreadPrivate::start(void*) (arg=0x5dc4ad0) at thread/qthread_unix.cpp:368 #8 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7fa4da53d700 (LWP 2616)): #0 0x00007fa5b001d878 in __tls_get_addr () at /lib64/ld-linux-x86-64.so.2 #1 0x00007fa5a9e815d6 in get_thread_data () at thread/qthread_unix.cpp:189 #2 0x00007fa5a9e815d6 in QThreadData::current(bool) (createIfNecessary=createIfNecessary@entry=true) at thread/qthread_unix.cpp:244 #3 0x00007fa5aa0b1c2a in postEventSourcePrepare(GSource*, gint*) (s=0x7fa4d4003400, timeout=0x7fa4da53cbd4) at kernel/qeventdispatcher_glib.cpp:252 #4 0x00007fa5a2aeec89 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0 #5 0x00007fa5a2aef6ab in () at /usr/lib/libglib-2.0.so.0 #6 0x00007fa5a2aef89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #7 0x00007fa5aa0b24db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa4d40013d0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #8 0x00007fa5aa05bd0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa4da53cda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #9 0x00007fa5a9e7dae3 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:507 #10 0x00007fa5ad204025 in () at /usr/lib/libQt5Qml.so.5 #11 0x00007fa5a9e82748 in QThreadPrivate::start(void*) (arg=0x458cd60) at thread/qthread_unix.cpp:368 #12 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #13 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7fa4fb0e8700 (LWP 832)): #0 0x00007fa5a2b34dd4 in g_mutex_unlock () at /usr/lib/libglib-2.0.so.0 #1 0x00007fa5a2aef73a in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa5a2aef89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa5aa0b24db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa4f40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007fa5aa05bd0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa4fb0e7d50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #5 0x00007fa5a9e7dae3 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:507 #6 0x00007fa5addb8fd6 in () at /usr/lib/libQt5Quick.so.5 #7 0x00007fa5a9e82748 in QThreadPrivate::start(void*) (arg=0x192dd50) at thread/qthread_unix.cpp:368 #8 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7fa589b2b700 (LWP 831)): #0 0x00007fa5a8f9510f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa5af89e234 in () at /usr/lib/libQt5Script.so.5 #2 0x00007fa5af89e279 in () at /usr/lib/libQt5Script.so.5 #3 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7fa58b791700 (LWP 719)): #0 0x00007fa5a2b34dd4 in g_mutex_unlock () at /usr/lib/libglib-2.0.so.0 #1 0x00007fa5a2aef171 in g_main_context_check () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa5a2aef724 in () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa5a2aef89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #4 0x00007fa5aa0b24db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa5800008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #5 0x00007fa5aa05bd0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa58b790da0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #6 0x00007fa5a9e7dae3 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:507 #7 0x00007fa5ad204025 in () at /usr/lib/libQt5Qml.so.5 #8 0x00007fa5a9e82748 in QThreadPrivate::start(void*) (arg=0x11e12d0) at thread/qthread_unix.cpp:368 #9 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7fa5919e0700 (LWP 707)): #0 0x00007fa5a978c48d in poll () at /usr/lib/libc.so.6 #1 0x00007fa5a2aef786 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa5a2aef89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa5aa0b24db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa5840008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007fa5aa05bd0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa5919dfda0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #5 0x00007fa5a9e7dae3 in QThread::exec() (this=<optimized out>) at thread/qthread.cpp:507 #6 0x00007fa5ad204025 in () at /usr/lib/libQt5Qml.so.5 #7 0x00007fa5a9e82748 in QThreadPrivate::start(void*) (arg=0x1148350) at thread/qthread_unix.cpp:368 #8 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7fa593428700 (LWP 672)): #0 0x00007fa5a2b34db9 in g_mutex_lock () at /usr/lib/libglib-2.0.so.0 #1 0x00007fa5a2aef680 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa5a2aef89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa5aa0b24db in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa58c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007fa5aa05bd0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa593427d90, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #5 0x00007fa5a9e7dae3 in QThread::exec() (this=this@entry=0x7fa5aae78d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:507 #6 0x00007fa5aac04835 in QDBusConnectionManager::run() (this=0x7fa5aae78d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:170 #7 0x00007fa5a9e82748 in QThreadPrivate::start(void*) (arg=0x7fa5aae78d60 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:368 #8 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7fa599185700 (LWP 659)): #0 0x00007fa5a978c48d in poll () at /usr/lib/libc.so.6 #1 0x00007fa5ae7c48e0 in () at /usr/lib/libxcb.so.1 #2 0x00007fa5ae7c6679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1 #3 0x00007fa59b2d39f9 in QXcbEventReader::run() (this=0x10ae1f0) at qxcbconnection.cpp:1345 #4 0x00007fa5a9e82748 in QThreadPrivate::start(void*) (arg=0x10ae1f0) at thread/qthread_unix.cpp:368 #5 0x00007fa5a8f8f454 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007fa5a97957df in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7fa5b011b800 (LWP 642)): [KCrash Handler] #6 0x00007fa5a96e004f in raise () at /usr/lib/libc.so.6 #7 0x00007fa5a96e147a in abort () at /usr/lib/libc.so.6 #8 0x00007fa59ce1a9f5 in pa_context_set_default_source () at /usr/lib/libpulse.so.0 #9 0x00007fa4f072e99e in QPulseAudio::Context::setDefaultSource(QString const&) () at /usr/lib/libQPulseAudioPrivate.so #10 0x00007fa4f074b40d in QPulseAudio::Server::setDefaultSource(QPulseAudio::Source*) () at /usr/lib/libQPulseAudioPrivate.so #11 0x00007fa4f074ecb9 in () at /usr/lib/libQPulseAudioPrivate.so #12 0x00007fa4f075124f in QPulseAudio::Device::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libQPulseAudioPrivate.so #13 0x00007fa5aa06b9a7 in QMetaProperty::write(QObject*, QVariant const&) const (this=<optimized out>, object=0x43dac70, value=...) at kernel/qmetaobject.cpp:3126 #14 0x00007fa4f0739050 in QPulseAudio::AbstractModel::setData(QModelIndex const&, QVariant const&, int) () at /usr/lib/libQPulseAudioPrivate.so #15 0x00007fa5acfc140f in () at /usr/lib/libQt5Qml.so.5 #16 0x00007fa5ad177ac9 in () at /usr/lib/libQt5Qml.so.5 #17 0x00007fa5ad176ac4 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5 #18 0x00007fa5ad140b7b in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5 #19 0x00007fa5ad141390 in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5 #20 0x00007fa5ad1f11ac in QV4::QmlContextWrapper::put(QV4::Managed*, QV4::String*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5 #21 0x00007fa5ad0c2366 in QV4::ExecutionContext::setProperty(QV4::String*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5 #22 0x00007fa5ad1527c7 in QV4::Runtime::method_setActivationProperty(QV4::ExecutionEngine*, int, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5 #23 0x00007fa4d1a6462d in () #24 0x0000000005dc7230 in () #25 0x0000000000000000 in () Reported using DrKonqi
Git commit 1c1a76775cb566b30aa412761494116570e7c49d by David Rosca. Committed on 02/02/2017 at 13:25. Pushed by drosca into branch 'Plasma/5.8'. Always check if context is valid when calling pa functions If pa_context is null, pulseaudio aborts. FIXED-IN: 5.8.6 Differential Revision: https://phabricator.kde.org/D4402 M +12 -0 src/context.cpp M +12 -0 src/context.h https://commits.kde.org/plasma-pa/1c1a76775cb566b30aa412761494116570e7c49d