PulseAudio hangs after the first stream is ended
Submitted by Vladimir Stackov
Assigned to pul..@..op.org
Description
Created attachment 126661
strace -Tttyy -s 111111 -o pa.strace -f -p pidof pulseaudio
Description:
PulseAudio hangs after hangs after the first input stream has ended.
Reproducibility: 95%
Steps to reproduce:
- Setup new pulseaudio in system mode
- Exec following:
LANG=C PULSE_LOG_TIME=1 PULSE_LOG=4 paplay /usr/share/sounds/alsa/Noise.wav
- Repeat step 2
Actual result:
LANG=C PULSE_LOG_TIME=1 PULSE_LOG=4 paplay /usr/share/sounds/alsa/Noise.wav
( 0.000| 0.000) Parsing configuration file '/etc/pulse/client.conf' ( 0.002| 0.002) Using shared memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65496 ( 0.003| 0.001) Not doing autospawn since we are root. ( 0.004| 0.000) Trying to connect to /run/user/0/pulse/native... ( 0.005| 0.000) connect(): No such file or directory (2) ( 0.005| 0.000) Trying to connect to /var/run/pulse/native... ( 0.007| 0.002) SHM possible: yes ( 0.010| 0.002) Protocol version: remote 30, local 30 ( 0.011| 0.000) Negotiated SHM: no ( 30.057| 30.045) Failed to drain stream: Timeout
Expected result:
LANG=C PULSE_LOG_TIME=1 PULSE_LOG=4 paplay /usr/share/sounds/alsa/Noise.wav
( 0.000| 0.000) Parsing configuration file '/etc/pulse/client.conf' ( 0.002| 0.002) Using shared memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65496 ( 0.003| 0.001) Not doing autospawn since we are root. ( 0.004| 0.000) Trying to connect to /run/user/0/pulse/native... ( 0.004| 0.000) connect(): No such file or directory (2) ( 0.005| 0.000) Trying to connect to /var/run/pulse/native... ( 0.006| 0.001) SHM possible: yes ( 0.009| 0.002) Protocol version: remote 30, local 30 ( 0.009| 0.000) Negotiated SHM: no
Additional info:
Sometimes PA accepts second stream without any timeouts but I can't find any particular conditions in which it was happening. While PA is in a hang I can still use HTTP/CLI protocols (pactl, Web UI).
Please note that PA system mode is because because I want to use my RPi device as a network media player.
I'm using Fedora 23 on RPi 2 and here are some details:
cat /etc/fedora-release
Fedora release 23 (Twenty Three)
cat /proc/version
Linux version 4.1.16-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #833 SMP Wed Jan 27 14:32:22 GMT 2016
rpm -qa | grep pulse
pulseaudio-libs-7.1-1.fc23.1.armv7hl pulseaudio-7.1-1.fc23.1.armv7hl pulseaudio-utils-7.1-1.fc23.1.armv7hl
pidof pulseaudio
-ex 'thr a a bt f' #while PA in hang
gdb -p [..]
#0 0x767f1d54 in ppoll () from /lib/libc.so.6
No symbol table info available.
#1 0x76ef4c94 in pa_rtpoll_run () from /lib/libpulsecore-7.1.so
No symbol table info available.
#2 0x71e9228c in thread_func () from /usr/lib/pulse-7.1/modules/libalsa-util.so
No symbol table info available.
#3 0x76d20940 in internal_thread_func () from /usr/lib/pulseaudio/libpulsecommon-7.1.so
No symbol table info available.
#4 0x7694f0fc in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#5 0x767fe370 in ?? () from /lib/libc.so.6
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0x76232000 (LWP 3064)):
#0 0x767f1d54 in ppoll () from /lib/libc.so.6
No symbol table info available.
#1 0x76e8d3f0 in pa_mainloop_poll () from /lib/libpulse.so.0
No symbol table info available.
#2 0x76e8da90 in pa_mainloop_iterate () from /lib/libpulse.so.0
No symbol table info available.
#3 0x76e8db68 in pa_mainloop_run () from /lib/libpulse.so.0
No symbol table info available.
#4 0x54b197bc in main ()
No symbol table info available.
I've also attached a complete output of strace and all related configs.
Thanks for any suggestions!
Attachment 126661, "strace -Tttyy -s 111111 -o pa.strace -f -p pidof pulseaudio
":
pa.strace.xz