https://bugs.kde.org/show_bug.cgi?id=433415

            Bug ID: 433415
           Summary: Plasma shell crashes when messing around application
                    audio settings in tray fly-out
           Product: plasmashell
           Version: 5.21.0
          Platform: openSUSE RPMs
                OS: Linux
            Status: REPORTED
          Keywords: drkonqi
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: k...@davidedmundson.co.uk
          Reporter: goldenhash...@outlook.com
                CC: plasma-b...@kde.org
  Target Milestone: 1.0

Application: plasmashell (5.21.0)

Qt Version: 5.15.2
Frameworks Version: 5.79.0
Operating System: Linux 5.10.16-1-default x86_64
Windowing System: X11
Drkonqi Version: 5.21.0
Distribution: "openSUSE Tumbleweed"

-- Information about the crash:
When used together with PulseEffects, messing around output settings via audio
tray causes Plasma shell to crash.

Plasma shell version is 5.21.0. This issue won't occur in previous version
(5.20 ?)

Steps to reproduce:

1.  Install PulseEffects and make sure it's running;
2.  Enable some random effects;
3.  Use whatever music player you like to play a music (This is necessary to
reproduce; silent status won't make plasma shell crash; For me VLC and Lollypop
can reproduce this)
4.  Open volume tray fly-out, switch to Applications tab (this is necessary,
crashes won't occur when you mess around settings in Devices tab), find the
music player that is playing music, change its output device to hardware
output, then change back, repeat this process for mutliple times, then switch
back to Devices tab, Plasma shell should crash now;
5.  If above steps won't crash Plasma shell, switch to Applications tab, in
additional to step.4, also change PulseEffects application volume and output
device repeatedly, then switch back to Devices tab, Plasma shell should crash
now.

Above step reproduces for both my laptop and desktop, one is upgraded to
5.21.0, another is clean reinstalled to 5.21.0, both running openSUSE
Tumbleweed.

This issue won't occur without PulseEffects, however an audio post-processing
software that routes output devices crashes Plasma shell indicates complicated
audio output setup isn't handled well.

The crash can be reproduced every time.

-- Backtrace:
Application: Plasma (plasmashell), signal: Aborted

[KCrash Handler]
#4  0x00007f989079a495 in raise () at /lib64/libc.so.6
#5  0x00007f9890783864 in abort () at /lib64/libc.so.6
#6  0x00007f983b2b7155 in pa_stream_set_read_callback (s=<optimized out>,
cb=cb@entry=0x0, userdata=userdata@entry=0x0) at pulse/stream.c:2083
#7  0x00007f983b32fb6a in
QPulseAudio::VolumeMonitor::setTarget(QPulseAudio::VolumeObject*)
(this=0x564cd54a8820, target=0x0) at
/usr/src/debug/plasma5-pa-5.21.0-1.1.x86_64/src/volumemonitor.cpp:75
#8  0x00007f98924d0357 in QQmlPropertyData::writeProperty(QObject*, void*,
QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., value=0x7ffc3d486e38,
target=<optimized out>, this=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/qml/qqmlpropertydata_p.h:375
#9  QObjectPointerBinding::write(QV4::Value const&, bool,
QFlags<QQmlPropertyData::WriteFlag>) (this=0x564cd54a9f20, result=...,
isUndefined=<optimized out>, flags=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlbinding.cpp:715
#10 0x00007f98924d1b2e in
QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&,
QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x564cd54a9f20,
watcher=..., flags=..., scope=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlbinding.cpp:258
#11 0x00007f98924cf7e4 in
QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x564cd54a9f20,
flags=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlbinding.cpp:194
#12 0x00007f98924ac84d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*,
void**) (endpoint=<optimized out>, a=0x0) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlnotifier.cpp:104
#13 0x00007f9890e544d5 in doActivate<false>(QObject*, int, void**)
(sender=0x564cd21c7c50, signal_index=18, argv=argv@entry=0x0) at
kernel/qobject.cpp:3778
#14 0x00007f9890e4dc60 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=sender@entry=0x564cd21c7c50, m=m@entry=0x7f9892cb4e20,
local_signal_index=local_signal_index@entry=15, argv=argv@entry=0x0) at
kernel/qobject.cpp:3946
#15 0x00007f98929c8753 in QQuickItem::visibleChanged()
(this=this@entry=0x564cd21c7c50) at .moc/moc_qquickitem.cpp:1170
#16 0x00007f98929dd028 in QQuickItemPrivate::setEffectiveVisibleRecur(bool)
(this=0x564cd3ec0a50, newEffectiveVisible=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/quick/items/qquickitem.cpp:6057
#17 0x00007f98929dcf9b in QQuickItemPrivate::setEffectiveVisibleRecur(bool)
(this=0x564cd2365990, newEffectiveVisible=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/quick/items/qquickitem.cpp:6048
#18 0x00007f98929dcf9b in QQuickItemPrivate::setEffectiveVisibleRecur(bool)
(this=this@entry=0x564ccbe5fe50, newEffectiveVisible=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/quick/items/qquickitem.cpp:6048
#19 0x00007f98929dd0f3 in QQuickItemPrivate::setVisible(bool)
(this=0x564ccbe5fe50, visible=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/quick/items/qquickitem.cpp:5951
#20 0x00007f98924d113f in QQmlPropertyData::writeProperty(QObject*, void*,
QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., value=0x7ffc3d488aef,
target=<optimized out>, this=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/qml/qqmlpropertydata_p.h:375
#21 GenericBinding<1>::doStore<bool>(bool, QQmlPropertyData const*,
QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., pd=<optimized out>,
value=<optimized out>, this=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlbinding.cpp:342
#22 GenericBinding<1>::write(QV4::Value const&, bool,
QFlags<QQmlPropertyData::WriteFlag>) (this=0x564cd3e4a930, result=...,
isUndefined=<optimized out>, flags=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlbinding.cpp:305
#23 0x00007f98924d1b2e in
QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&,
QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0x564cd3e4a930,
watcher=..., flags=..., scope=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlbinding.cpp:258
#24 0x00007f98924cf7e4 in
QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0x564cd3e4a930,
flags=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlbinding.cpp:194
#25 0x00007f98924ac84d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*,
void**) (endpoint=<optimized out>, a=0x0) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlnotifier.cpp:104
#26 0x00007f9890e544d5 in doActivate<false>(QObject*, int, void**)
(sender=0x564cd516cfd0, signal_index=30, argv=argv@entry=0x0) at
kernel/qobject.cpp:3778
#27 0x00007f9890e4de7d in QMetaObject::activate(QObject*, int, int, void**)
(sender=<optimized out>, signalOffset=<optimized out>,
local_signal_index=<optimized out>, argv=argv@entry=0x0) at
kernel/qobject.cpp:3959
#28 0x00007f9892458f45 in QQmlVMEMetaObject::activate(QObject*, int, void**)
(this=this@entry=0x564cce91f2e0, object=<optimized out>, index=<optimized out>,
args=args@entry=0x0) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:1312
#29 0x00007f989245b51d in QQmlVMEMetaObject::metaCall(QObject*,
QMetaObject::Call, int, void**) (this=0x564cce91f2e0, o=<optimized out>,
c=<optimized out>, _id=<optimized out>, a=<optimized out>) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlvmemetaobject.cpp:880
#30 0x00007f989246bd40 in QQmlPropertyData::writeProperty(QObject*, void*,
QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., value=0x7ffc3d48a788,
target=0x564cd516cfd0, this=0x7f98646c16f8) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/qml/qqmlpropertydata_p.h:285
#31 QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant
const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>)
(object=object@entry=0x564cd516cfd0, property=..., value=...,
context=<optimized out>, flags=..., flags@entry=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/qml/qqmlproperty.cpp:1271
#32 0x00007f98923990db in
QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*,
QQmlPropertyData*, QV4::Value const&) (engine=0x564ccb99a8e0,
object=0x564cd516cfd0, property=0x7f98646c16f8, value=...) at
/usr/include/qt5/QtCore/qflags.h:120
#33 0x00007f9892399ad7 in
QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*,
QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&)
(value=..., revisionMode=QV4::QObjectWrapper::IgnoreRevision, name=<optimized
out>, object=0x564cd516cfd0, qmlContext=<optimized out>, engine=0x564ccb99a8e0)
at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:435
#34 QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*,
QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode,
QV4::Value const&) (engine=0x564ccb99a8e0, qmlContext=<optimized out>,
object=0x564cd516cfd0, name=<optimized out>,
revisionMode=QV4::QObjectWrapper::IgnoreRevision, value=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:418
#35 0x00007f9892399c75 in QV4::QObjectWrapper::virtualPut(QV4::Managed*,
QV4::PropertyKey, QV4::Value const&, QV4::Value*) (m=0x7f98721af588, id=...,
value=..., receiver=0x7f98721af588) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:722
#36 0x00007f989232ae93 in QV4::Object::put(QV4::StringOrSymbol*, QV4::Value
const&, QV4::Value*) (receiver=0x7f98721af588, v=..., name=0x7f98721af590,
this=0x7f98721af588) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/jsruntime/qv4string_p.h:167
#37 QV4::Lookup::setterFallback(QV4::Lookup*, QV4::ExecutionEngine*,
QV4::Value&, QV4::Value const&) (l=<optimized out>, engine=0x564ccb99a8e0,
object=<optimized out>, value=...) at
/usr/src/debug/libqt5-qtdeclarative-5.15.2-2.2.x86_64/src/qml/jsruntime/qv4lookup.cpp:497
#38 0x00007f9862bbcbac in  ()
#39 0x0000000000000000 in  ()
[Inferior 1 (process 3362) detached]

Possible duplicates by query: bug 432551, bug 432216, bug 432029, bug 431718,
bug 431532.

Reported using DrKonqi

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to