https://bugs.kde.org/show_bug.cgi?id=511472
Bug ID: 511472
Summary: Sometimes audio notification (Pipewire) freezes whole
shell
Classification: Plasma
Product: plasmashell
Version First 6.5.0
Reported In:
Platform: Arch Linux
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: Notifications
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: 1.0
SUMMARY
Sometimes audio notification (pipewire) freezes whole shell.
Basically it looks like `plasmashell` gets stuck waiting forever on Pipewire.
STEPS TO REPRODUCE
1. No idea, it happens rarely
OBSERVED RESULT
Whole plasmashell gets stuck/frozen - "nothing works"
EXPECTED RESULT
Keep responding :)
I think it should just timeout and abort if some time has passed.
SOFTWARE/OS VERSIONS
Linux: Arch Linux
KDE Plasma Version: 6.5.0
KDE Frameworks Version: 6.19.0
Qt Version: 6.10.0
Pipewire: 1.4.9
ADDITIONAL INFORMATION
This is backtrace when it was frozen:
```
#0 __syscall_cancel_arch () at
../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1 0x00007fb6de0931ac in __internal_syscall_cancel (a1=<optimized out>,
a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0,
a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2 0x00007fb6de09381c in __futex_abstimed_wait_common64 (private=0,
futex_word=0x55d5f2507590, expected=<optimized out>, op=<optimized out>,
abstime=0x0, cancel=true) at futex-internal.c:57
#3 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55d5f2507590,
expected=<optimized out>, clockid=clockid@entry=0, abstime=abstime@entry=0x0,
private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4 0x00007fb6de09387f in __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x55d5f2507590, expected=<optimized out>,
clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at
futex-internal.c:139
#5 0x00007fb6de095ede in __pthread_cond_wait_common (cond=0x55d5f2507570,
mutex=0x55d5f2507548, clockid=0, abstime=0x0) at pthread_cond_wait.c:421
#6 ___pthread_cond_wait (cond=cond@entry=0x55d5f2507570,
mutex=mutex@entry=0x55d5f2507548) at pthread_cond_wait.c:453
#7 0x00007fb6701de1fb in pw_thread_loop_wait (loop=0x55d5f2507530) at
../pipewire/src/pipewire/thread-loop.c:428
#8 0x00007fb661b5dc85 in snd_pcm_pipewire_prepare (io=0x55d5f1bf1480) at
../pipewire/pipewire-alsa/alsa-plugins/pcm_pipewire.c:585
#9 0x00007fb640147873 in snd_pcm_ioplug_prepare (pcm=0x55d5f26335f0) at
pcm/pcm_ioplug.c:175
#10 0x00007fb6401851d1 in snd_pcm_prepare (pcm=0x55d5f26335f0) at
pcm/pcm.c:1249
#11 0x00007fb6401a61f7 in snd_pcm_hw_params (pcm=<optimized out>,
params=params@entry=0x7ffe527ac900) at pcm/pcm.c:958
#12 0x00007fb67a365401 in open_alsa (c=c@entry=0x55d5f04f75d0,
out=out@entry=0x55d5f6592540) at
/usr/src/debug/libcanberra/libcanberra/src/alsa.c:261
#13 0x00007fb67a366111 in alsa_driver_play (c=0x55d5f04f75d0, id=0,
proplist=0x55d5f57f23b0, cb=0x0, userdata=<optimized out>) at
/usr/src/debug/libcanberra/libcanberra/src/alsa.c:459
#14 0x00007fb6dcf8c308 in driver_play (c=0x55d5f04f75d0, id=0,
pl=0x55d5f57f23b0, cb=0x0, userdata=0x0) at
/usr/src/debug/libcanberra/libcanberra/src/dso.c:342
#15 ca_context_play_full (c=0x55d5f04f75d0, id=id@entry=0,
p=p@entry=0x55d5f57f23b0, cb=cb@entry=0x0, userdata=userdata@entry=0x0) at
/usr/src/debug/libcanberra/libcanberra/src/common.c:522
#16 0x00007fb67a36ba66 in multi_driver_play (c=<optimized out>, id=0,
proplist=0x55d5f57f23b0, cb=<optimized out>, userdata=<optimized out>) at
/usr/src/debug/libcanberra/libcanberra/src/multi.c:273
#17 0x00007fb6dcf8c308 in driver_play (c=0x55d5f02034d0, id=0,
pl=0x55d5f57f23b0, cb=0x0, userdata=0x0) at
/usr/src/debug/libcanberra/libcanberra/src/dso.c:342
#18 ca_context_play_full (c=0x55d5f02034d0, id=0, p=0x55d5f57f23b0, cb=0x0,
userdata=0x0) at /usr/src/debug/libcanberra/libcanberra/src/common.c:522
#19 0x00007fb6707043eb in
NotificationManager::Notifications::playSoundHint(QModelIndex const&) const ()
from /usr/lib/libnotificationmanager.so.1
#20 0x00007fb67070552d in ?? () from /usr/lib/libnotificationmanager.so.1
#21 0x00007fb6707061e7 in
NotificationManager::Notifications::qt_metacall(QMetaObject::Call, int, void**)
() from /usr/lib/libnotificationmanager.so.1
#22 0x00007fb6dff37a03 in QQmlObjectOrGadget::metacall (this=<optimized out>,
type=<optimized out>, index=<optimized out>, argv=<optimized out>) at
/usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlobjectorgadget.cpp:14
#23 0x00007fb6dfde8311 in QV4::CallMethod (object=..., index=<optimized out>,
returnType=..., argCount=<optimized out>, argTypes=<optimized out>,
engine=<optimized out>, callArgs=<optimized out>, callType=<optimized out>) at
/usr/include/qt6/QtCore/qvarlengtharray.h:90
#24 QV4::QObjectMethod::callPrecise (object=..., data=..., engine=<optimized
out>, callArgs=<optimized out>, callType=<optimized out>) at
/usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:2081
#25 0x00007fb6dfdf20dd in operator() (__closure=<optimized out>) at
/usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:3113
#26 operator()<QV4::QObjectMethod::callInternal(const QV4::Value*, const
QV4::Value*, int) const::<lambda()> > (__closure=<synthetic pointer>, call=...)
at
/usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:3090
#27 QV4::QObjectMethod::callInternal (this=0x7ffe527ad5e8,
thisObject=<optimized out>, argv=0x7fb6b66f6578, argc=1) at
/usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:3113
#28 0x00007fb6dfe0f91d in QV4::FunctionObject::call (this=0x7ffe527ad5e8,
thisObject=0x7fb6b66f6560, argv=0x7fb6b66f6578, argc=1) at
/usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4functionobject_p.h:187
#29 QV4::Runtime::CallPropertyLookup::call (engine=0x55d5ea3f4eb0, base=...,
index=<optimized out>, argv=0x7fb6b66f6578, argc=1) at
/usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4runtime.cpp:1562
#30 0x00007fb67abfa70e in ?? ()
```
I didn't think of checking what Pipewire was doing but after killing it made
Plasma responsive again.
So it's possible that there's also some Pipewire bug but even if so it still
shouldn't break whole Plasma.
--
You are receiving this mail because:
You are watching all bug changes.