Bug 433159 - Changing audio output crashes plasmashell
Summary: Changing audio output crashes plasmashell
Status: RESOLVED DUPLICATE of bug 432482
Alias: None
Product: plasma-pa
Classification: Plasma
Component: applet (show other bugs)
Version: 5.21.0
Platform: Archlinux Linux
: NOR crash
Target Milestone: ---
Assignee: David Rosca
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-02-18 11:35 UTC by rLy
Modified: 2021-02-20 13:12 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
journal log with 3 crashes (258.61 KB, text/plain)
2021-02-18 11:35 UTC, rLy
Details
journal log after a reboot and multiple crashes (537.42 KB, text/plain)
2021-02-18 11:36 UTC, rLy
Details
kcrash log after a crash (2.62 KB, text/vnd.kde.kcrash-report)
2021-02-18 11:37 UTC, rLy
Details
2nd kcrash log (6.10 KB, text/vnd.kde.kcrash-report)
2021-02-18 11:37 UTC, rLy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description rLy 2021-02-18 11:35:50 UTC
Created attachment 135837 [details]
journal log with 3 crashes

SUMMARY
I have a few virtual sinks to record audio in a separate track, when I switched the audio of an application to the virtual sink it crashed plasmashell. The crash happens after selecting an output then switching back to the Devices tab. I'm able to reproduce it fairly reliably but there are some inconsistencies. Most of the time the crash only happens 1 time per application, after a crash on a given application it "fixes" and works as expected but then starting a new application and switching the output for that cause plasma to crash again. 
Inconsistencies: 
1) after 4-5 crashes it seemed to "fix" itself but I didn't do a lot of testing for this, I just went through multiple applications to see if it crashes every time but it just stopped crashing after that. 
2) even though most of the time it fixed itself for a given application after a crash, one time it kept crashing for the same app when switching the output back and forth multiple times.
After it "fixes" itself for an application simply reloading plasmashell can reintroduce the issue.

STEPS TO REPRODUCE
1. Have a secondary output 
2. Have an application with sound output open then bring up the audio applet and go to Applications tab
3. Switch the output for the application to something else and go back to Devices tab

OBSERVED RESULT
plasmashell crashes when clicking to go back to the Devices tab

EXPECTED RESULT
not crashing

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: up to date Archlinux
(available in About System)
KDE Plasma Version: 5.21.0
KDE Frameworks Version: 5.79.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION
Comment 1 rLy 2021-02-18 11:36:39 UTC
Created attachment 135838 [details]
journal log after a reboot and multiple crashes
Comment 2 rLy 2021-02-18 11:37:16 UTC
Created attachment 135839 [details]
kcrash log after a crash
Comment 3 rLy 2021-02-18 11:37:35 UTC
Created attachment 135840 [details]
2nd kcrash log
Comment 4 Nate Graham 2021-02-18 15:10:07 UTC
Application: Plasma (plasmashell), signal: Aborted

[KCrash Handler]
#4  0x00007fc630ed0ef5 in raise () at /usr/lib/libc.so.6
#5  0x00007fc630eba862 in abort () at /usr/lib/libc.so.6
#6  0x00007fc55c684317 in pa_stream_set_read_callback () at /usr/lib/libpulse.so.0
#7  0x00007fc55c720156 in  () at /usr/lib/qt/qml/org/kde/plasma/private/volume/libplasma-volume-declarative.so
#8  0x00007fc632ac14b7 in  () at /usr/lib/libQt5Qml.so.5
#9  0x00007fc632ac2ca6 in  () at /usr/lib/libQt5Qml.so.5
#10 0x00007fc632ac0914 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#11 0x00007fc632a9d00d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#12 0x00007fc63152c905 in  () at /usr/lib/libQt5Core.so.5
#13 0x00007fc632f9a5ef in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#14 0x00007fc632f9a55e in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#15 0x00007fc632f9a55e in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#16 0x00007fc632f9a6c5 in QQuickItemPrivate::setVisible(bool) () at /usr/lib/libQt5Quick.so.5
#17 0x00007fc632ac22af in  () at /usr/lib/libQt5Qml.so.5
#18 0x00007fc632ac2ca6 in  () at /usr/lib/libQt5Qml.so.5
#19 0x00007fc632ac0914 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#20 0x00007fc632a9d00d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#21 0x00007fc63152c905 in  () at /usr/lib/libQt5Core.so.5
#22 0x00007fc632a4a52e in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib/libQt5Qml.so.5
#23 0x00007fc632a5b2f5 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#24 0x00007fc632986079 in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#25 0x00007fc632986aa9 in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#26 0x00007fc632986c47 in QV4::QObjectWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*) () at /usr/lib/libQt5Qml.so.5
#27 0x00007fc632916a43 in QV4::Lookup::setterFallback(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value&, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#28 0x00007fc58201362c in  ()
#29 0x0000000000000000 in  ()
[Inferior 1 (process 6457) detached]
Comment 5 David Redondo 2021-02-19 08:00:25 UTC
Looks like 432482

*** This bug has been marked as a duplicate of bug 432482 ***
Comment 6 rLy 2021-02-20 10:27:36 UTC
(In reply to David Redondo from comment #5)
> Looks like 432482
> 
> *** This bug has been marked as a duplicate of bug 432482 ***

I'm not sure that my bug is the same as bug 432482. I can open and close plasma-pa with "plasmawindowed org.kde.plasma.volume" and that's not causing any crashes, however it does crash when I have plasma-pa open and I run arecord ./test.wav and ctrl-c as this also mentioned in that bug. But that produces a completely different kcrash log compared to switching the outputs.

kcrash when running plasma-pa from plasmawindowed and arecord

Application: plasmawindowed (plasmawindowed), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f321cef4620 in QQmlData::isSignalConnected(QAbstractDeclarativeData*, QObject const*, int) () at /usr/lib/libQt5Qml.so.5
#5  0x00007f321bb458e3 in  () at /usr/lib/libQt5Core.so.5
#6  0x00007f31b8134d03 in  () at /usr/lib/qt/qml/org/kde/plasma/private/volume/libplasma-volume-declarative.so
#7  0x00007f31b80c1cb2 in  () at /usr/lib/libpulse.so.0
#8  0x00007f31981fd4e6 in  () at /usr/lib/pulseaudio/libpulsecommon-14.2.so
#9  0x00007f31981feb18 in  () at /usr/lib/pulseaudio/libpulsecommon-14.2.so
#10 0x00007f31981fef07 in  () at /usr/lib/pulseaudio/libpulsecommon-14.2.so
#11 0x00007f3198201a9a in  () at /usr/lib/pulseaudio/libpulsecommon-14.2.so
#12 0x00007f31d800365e in  () at /usr/lib/libpulse-mainloop-glib.so.0
#13 0x00007f3219d03b84 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#14 0x00007f3219d57c21 in  () at /usr/lib/libglib-2.0.so.0
#15 0x00007f3219d023b1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#16 0x00007f321bb676ac in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#17 0x00007f321bb0d3ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#18 0x00007f321bb15844 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#19 0x0000556d22dc94a8 in  ()
#20 0x00007f321b4d6b25 in __libc_start_main () at /usr/lib/libc.so.6
#21 0x0000556d22dc954e in  ()
[Inferior 1 (process 73245) detached]

kcrash when switching audio outputs, running pulse-pa from plasawindowed

Application: plasmawindowed (plasmawindowed), signal: Aborted

[KCrash Handler]
#4  0x00007f0492919ef5 in raise () at /usr/lib/libc.so.6
#5  0x00007f0492903862 in abort () at /usr/lib/libc.so.6
#6  0x00007f0458035317 in pa_stream_set_read_callback () at /usr/lib/libpulse.so.0
#7  0x00007f04580d1156 in  () at /usr/lib/qt/qml/org/kde/plasma/private/volume/libplasma-volume-declarative.so
#8  0x00007f04943974b7 in  () at /usr/lib/libQt5Qml.so.5
#9  0x00007f0494398ca6 in  () at /usr/lib/libQt5Qml.so.5
#10 0x00007f0494396914 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#11 0x00007f049437300d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#12 0x00007f0492f73905 in  () at /usr/lib/libQt5Core.so.5
#13 0x00007f04947665ef in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#14 0x00007f049476655e in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#15 0x00007f049476655e in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#16 0x00007f04947666c5 in QQuickItemPrivate::setVisible(bool) () at /usr/lib/libQt5Quick.so.5
#17 0x00007f04943982af in  () at /usr/lib/libQt5Qml.so.5
#18 0x00007f0494398ca6 in  () at /usr/lib/libQt5Qml.so.5
#19 0x00007f0494396914 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#20 0x00007f049437300d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#21 0x00007f0492f73905 in  () at /usr/lib/libQt5Core.so.5
#22 0x00007f049432052e in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib/libQt5Qml.so.5
#23 0x00007f04943312f5 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#24 0x00007f049425c079 in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#25 0x00007f049425caa9 in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#26 0x00007f049425cc47 in QV4::QObjectWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*) () at /usr/lib/libQt5Qml.so.5
#27 0x00007f04941eca43 in QV4::Lookup::setterFallback(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value&, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#28 0x00007f0494275809 in  () at /usr/lib/libQt5Qml.so.5
#29 0x00007f049427968f in  () at /usr/lib/libQt5Qml.so.5
#30 0x00007f0494213d2e in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib/libQt5Qml.so.5
#31 0x00007f049438f916 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () at /usr/lib/libQt5Qml.so.5
#32 0x00007f049434262d in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib/libQt5Qml.so.5
#33 0x00007f0494342b11 in  () at /usr/lib/libQt5Qml.so.5
#34 0x00007f049437300d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#35 0x00007f0492f73905 in  () at /usr/lib/libQt5Core.so.5
#36 0x00007f049432052e in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib/libQt5Qml.so.5
#37 0x00007f0494398251 in  () at /usr/lib/libQt5Qml.so.5
#38 0x00007f0494398ca6 in  () at /usr/lib/libQt5Qml.so.5
#39 0x00007f0494396914 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#40 0x00007f049437300d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#41 0x00007f0492f73905 in  () at /usr/lib/libQt5Core.so.5
#42 0x00007f04947d1c11 in QQuickMouseArea::setPressed(Qt::MouseButton, bool, Qt::MouseEventSource) () at /usr/lib/libQt5Quick.so.5
#43 0x00007f04947d26e9 in QQuickMouseArea::mousePressEvent(QMouseEvent*) () at /usr/lib/libQt5Quick.so.5
#44 0x00007f0494769058 in QQuickItem::event(QEvent*) () at /usr/lib/libQt5Quick.so.5
#45 0x00007f0493a65752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#46 0x00007f0492f3ca2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#47 0x00007f0494784162 in QQuickWindowPrivate::deliverMatchingPointsToItem(QQuickItem*, QQuickPointerEvent*, bool) () at /usr/lib/libQt5Quick.so.5
#48 0x00007f0494785248 in QQuickWindowPrivate::deliverPressOrReleaseEvent(QQuickPointerEvent*, bool) () at /usr/lib/libQt5Quick.so.5
#49 0x00007f0494785b86 in QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent*) () at /usr/lib/libQt5Quick.so.5
#50 0x00007f0494786c4c in QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent*) () at /usr/lib/libQt5Quick.so.5
#51 0x00007f0493322b95 in QWindow::event(QEvent*) () at /usr/lib/libQt5Gui.so.5
#52 0x00007f0493a65752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#53 0x00007f0492f3ca2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#54 0x00007f0493316594 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#55 0x00007f04932ebbb5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#56 0x00007f048e04316c in  () at /usr/lib/libQt5XcbQpa.so.5
#57 0x00007f0491131b84 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#58 0x00007f0491185c21 in  () at /usr/lib/libglib-2.0.so.0
#59 0x00007f04911303b1 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#60 0x00007f0492f956ac in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#61 0x00007f0492f3b3ac in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#62 0x00007f0492f43844 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#63 0x000056499ff5d4a8 in  ()
#64 0x00007f0492904b25 in __libc_start_main () at /usr/lib/libc.so.6
#65 0x000056499ff5d54e in  ()
[Inferior 1 (process 84115) detached]
Comment 7 David Redondo 2021-02-20 13:12:15 UTC
#4  0x00007f0492919ef5 in raise () at /usr/lib/libc.so.6
#5  0x00007f0492903862 in abort () at /usr/lib/libc.so.6
#6  0x00007f0458035317 in pa_stream_set_read_callback () at /usr/lib/libpulse.so.0
#7  0x00007f04580d1156 in  () at /usr/lib/qt/qml/org/kde/plasma/private/volume/libplasma-volume-declarative.so
#8  0x00007f04943974b7 in  () at /usr/lib/libQt5Qml.so.5
#9  0x00007f0494398ca6 in  () at /usr/lib/libQt5Qml.so.5
#10 0x00007f0494396914 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5 

is the same