Streaming over network fails often
Summary
Hi
I use pulseaudio 15, but the problem described below happens since pulseaudio 14. I use pulseaudio to stream audio over network from my laptop to the speakers connected to my desktop computer, but the streaming fails often. The problem occurs regardless I use wi-fi or wired network.
Here is my topic created on Arch Linux forum about this bug:
https://bbs.archlinux.org/viewtopic.php?pid=1976653
environment
My desktop computer runs Arch Linux + pulseaudio 15 + KDE Plasma 5.22.4, my laptop runs Arch Linux + pulseaudio 15 + Gnome 40.2.0. pa-info.txt
Steps to reproduce
Stream audio over network for some hours. At some point, streaming will fail with symptoms described below. The problem does not occur all the time and unfortunately I do not know the exact steps to reproduce yet. Sometimes my laptop streams audio over network for several hours until the problem occurs.
What is the current bug behavior?
When the failure occurs, the audio of an youtube video played with Firefox plays while the image gets stuck with a spinner and then video playback restarts itself after a few seconds and the problem continues in a loop. If I play a playlist with an audio player, the current track plays and then the player gets stuck and it never plays the next track. Once the streaming starts to fail, rebooting my laptop is the only solution until the problem occurs again.
What is the expected correct behavior?
Streamimg over network should always work.
The outputs of dmesg and "journalctl -f" do not show anything suspicious. Below I'm posting the output of verbose mode of pulseaudio while the failure occurs.
I: [pulseaudio] client.c: Created 31 "Native client (UNIX socket client)"
D: [pulseaudio] protocol-dbus.c: Interface org.PulseAudio.Core1.Client added for object /org/pulseaudio/core1/client31
D: [pulseaudio] protocol-native.c: Protocol version: remote 35, local 35
I: [pulseaudio] protocol-native.c: Got credentials: uid=1000 gid=1000 success=1
D: [pulseaudio] protocol-native.c: SHM possible: yes
D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
D: [pulseaudio] protocol-native.c: Memfd possible: yes
D: [pulseaudio] protocol-native.c: Negotiated SHM type: shared memfd
D: [pulseaudio] memblock.c: Using shared memfd memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472
D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes, ringbuffer capacity is 2 * 32712 bytes
D: [pulseaudio] protocol-native.c: Enabling srbchannel...
D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for strawberry
D: [pulseaudio] protocol-native.c: Client enabled srbchannel.
D: [pulseaudio] protocol-dbus.c: Interface org.PulseAudio.Core1.Client removed from object /org/pulseaudio/core1/client31
I: [pulseaudio] client.c: Freed 31 "strawberry"
I: [pulseaudio] protocol-native.c: Connection died.
I: [pulseaudio] client.c: Created 32 "Native client (UNIX socket client)"
D: [pulseaudio] protocol-dbus.c: Interface org.PulseAudio.Core1.Client added for object /org/pulseaudio/core1/client32
D: [pulseaudio] protocol-native.c: Protocol version: remote 35, local 35
I: [pulseaudio] protocol-native.c: Got credentials: uid=1000 gid=1000 success=1
D: [pulseaudio] protocol-native.c: SHM possible: yes
D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
D: [pulseaudio] protocol-native.c: Memfd possible: yes
D: [pulseaudio] protocol-native.c: Negotiated SHM type: shared memfd
D: [pulseaudio] memblock.c: Using shared memfd memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472
D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes, ringbuffer capacity is 2 * 32712 bytes
D: [pulseaudio] protocol-native.c: Enabling srbchannel...
D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for strawberry
D: [pulseaudio] protocol-native.c: Client enabled srbchannel.
D: [pulseaudio] sink-input.c: Negotiated format: pcm, format.sample_format = "\"s16le\"" format.rate = "44100" format.channels = "2"
D: [pulseaudio] module-suspend-on-idle.c: Sink tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo becomes busy, resuming.
D: [pulseaudio] sink.c: tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo: suspend_cause: IDLE -> (none)
D: [pulseaudio] sink.c: tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo: state: SUSPENDED -> IDLE
D: [pulseaudio] module-suspend-on-idle.c: Sink tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo becomes idle, timeout in 5 seconds.
D: [pulseaudio] source.c: tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo.monitor: suspend_cause: IDLE -> (none)
D: [pulseaudio] source.c: tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo.monitor: state: SUSPENDED -> IDLE
D: [pulseaudio] module-suspend-on-idle.c: Sink tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo becomes idle, timeout in 5 seconds.
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
I: [pulseaudio] sink-input.c: Created input 32 "pulsesink probe" on tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] sink-input.c: media.name = "pulsesink probe"
I: [pulseaudio] sink-input.c: application.name = "strawberry"
I: [pulseaudio] sink-input.c: native-protocol.peer = "UNIX socket client"
I: [pulseaudio] sink-input.c: native-protocol.version = "35"
I: [pulseaudio] sink-input.c: media.role = "music"
I: [pulseaudio] sink-input.c: application.process.id = "9146"
I: [pulseaudio] sink-input.c: application.process.user = "stalker"
I: [pulseaudio] sink-input.c: application.process.host = "arch-laptop"
I: [pulseaudio] sink-input.c: application.process.binary = "strawberry"
I: [pulseaudio] sink-input.c: application.language = "pt_BR.UTF-8"
I: [pulseaudio] sink-input.c: window.x11.display = ":0"
I: [pulseaudio] sink-input.c: application.process.machine_id = "f62a524e0f6b4cccb8caa88c2fdba6c8"
I: [pulseaudio] sink-input.c: module-stream-restore.id = "sink-input-by-media-role:music"
I: [pulseaudio] protocol-native.c: Requested tlength=272.11 ms, minreq=20.00 ms
D: [pulseaudio] protocol-native.c: Adjust latency mode enabled, configuring sink latency to half of overall latency.
D: [pulseaudio] protocol-native.c: Requested latency=116.05 ms, Received latency=250.00 ms
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=4194304, tlength=51156, base=4, prebuf=47632, minreq=3528 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=4194304, tlength=51156, base=4, prebuf=47632, minreq=3528 maxrewind=0
I: [pulseaudio] protocol-native.c: Final latency 540.00 ms = 250.00 ms + 2*20.00 ms + 250.00 ms
D: [pulseaudio] protocol-dbus.c: Interface org.PulseAudio.Core1.Stream added for object /org/pulseaudio/core1/playback_stream32
D: [pulseaudio] module-tunnel.c: Server reports device suspend.
D: [pulseaudio] module-tunnel.c: Server reports playback started.
D: [pulseaudio] protocol-dbus.c: Interface org.PulseAudio.Core1.Stream removed from object /org/pulseaudio/core1/playback_stream32
D: [pulseaudio] module-suspend-on-idle.c: Sink tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo becomes idle, timeout in 5 seconds.
I: [pulseaudio] sink-input.c: Freeing input 32 "pulsesink probe"
D: [pulseaudio] sink-input.c: Negotiated format: pcm, format.sample_format = "\"s16le\"" format.channels = "2" format.rate = "48000" format.channel_map = "\"front-left,front-right\""
I: [pulseaudio] sink-input.c: Trying to change sample spec
D: [pulseaudio] module-suspend-on-idle.c: Sink tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo becomes busy, resuming.
D: [pulseaudio] module-suspend-on-idle.c: Sink tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo becomes idle, timeout in 5 seconds.
D: [pulseaudio] resampler.c: Resampler:
D: [pulseaudio] resampler.c: rate 48000 -> 44100 (method speex-float-1)
D: [pulseaudio] resampler.c: format s16le -> s16le (intermediate float32le)
D: [pulseaudio] resampler.c: channels 2 -> 2 (resampling 2)
I: [pulseaudio] speex.c: Choosing speex quality setting 1.
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
I: [pulseaudio] sink-input.c: Created input 33 "Playback Stream" on tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo with sample spec s16le 2ch 48000Hz and channel map front-left,front-right
I: [pulseaudio] sink-input.c: media.name = "Playback Stream"
I: [pulseaudio] sink-input.c: application.name = "strawberry"
I: [pulseaudio] sink-input.c: native-protocol.peer = "UNIX socket client"
I: [pulseaudio] sink-input.c: native-protocol.version = "35"
I: [pulseaudio] sink-input.c: media.role = "music"
I: [pulseaudio] sink-input.c: application.process.id = "9146"
I: [pulseaudio] sink-input.c: application.process.user = "stalker"
I: [pulseaudio] sink-input.c: application.process.host = "arch-laptop"
I: [pulseaudio] sink-input.c: application.process.binary = "strawberry"
I: [pulseaudio] sink-input.c: application.language = "pt_BR.UTF-8"
I: [pulseaudio] sink-input.c: window.x11.display = ":0"
I: [pulseaudio] sink-input.c: application.process.machine_id = "f62a524e0f6b4cccb8caa88c2fdba6c8"
I: [pulseaudio] sink-input.c: module-stream-restore.id = "sink-input-by-media-role:music"
I: [pulseaudio] protocol-native.c: Requested tlength=200.00 ms, minreq=10.00 ms
D: [pulseaudio] protocol-native.c: Adjust latency mode enabled, configuring sink latency to half of overall latency.
D: [pulseaudio] protocol-native.c: Requested latency=90.00 ms, Received latency=250.00 ms
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=4194304, tlength=51840, base=4, prebuf=0, minreq=1920 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=4194304, tlength=51840, base=4, prebuf=0, minreq=1920 maxrewind=0
I: [pulseaudio] protocol-native.c: Final latency 520.00 ms = 250.00 ms + 2*10.00 ms + 250.00 ms
D: [pulseaudio] protocol-dbus.c: Interface org.PulseAudio.Core1.Stream added for object /org/pulseaudio/core1/playback_stream33
D: [module-tunnel] protocol-native.c: Requesting rewind due to end of underrun.
D: [module-tunnel] protocol-native.c: Requesting rewind due to end of underrun.
D: [module-tunnel] protocol-native.c: Requesting rewind due to end of underrun.
D: [module-tunnel] protocol-native.c: Requesting rewind due to end of underrun.
D: [module-tunnel] protocol-native.c: Requesting rewind due to end of underrun.
D: [module-tunnel] sink-input.c: Requesting rewind due to uncorking
D: [pulseaudio] module-suspend-on-idle.c: Sink tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo becomes busy, resuming.
D: [pulseaudio] sink.c: tunnel.Arch-PC.local.alsa_output.pci-0000_00_1b.0.analog-stereo: state: IDLE -> RUNNING
D: [module-tunnel] protocol-native.c: Implicit underrun of 'Playback Stream'