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.

Reply via email to