[alsa-devel] [BUG] Meter causes freeze when closing audio device
Alistair Buxton
a.j.buxton at gmail.com
Sun Mar 5 23:20:42 CET 2017
To reproduce, put the following in asound.conf or .asoundrc:
pcm.mymeter {
type meter
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 48000
}
bindings {
0 0
1 1
}
}
ctl.dmixer {
type hw
card 0
}
If pulseaudio is running, suspend it:
pasuspender sleep 1d
Now run aplay (you may need to change sample format):
aplay -v -fS16_LE -r48000 -c2 -d1 -Dmymeter /dev/zero
Expected result: aplay should play one second of silence and then exit.
Actual result: About 50% of the time, aplay plays one second of silence and
then freezes forever in poll().
Playing directly to dmixer does not freeze.
Backtrace:
(gdb) bt
#0 0xb6ce5b80 in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0xb6e5c428 in poll (__timeout=-1, __nfds=1, __fds=0xbe96c408)
at /usr/include/arm-linux-gnueabihf/bits/poll2.h:46
#2 snd1_pcm_wait_nocheck (pcm=pcm at entry=0xc69570, timeout=timeout at entry=-1)
at pcm.c:2418
#3 0xb6e961d8 in snd_pcm_dmix_drain (pcm=0xc69570) at pcm_dmix.c:649
#4 0x0000de90 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Also reproducible with other audio players such as sox and ogg123.
Reproducible on Ubuntu 17.04 beta with libasound2 1.1.3 and virtualbox
audio device.
Reproducible on Ubuntu 16.04 with libasound2 1.1.0 and Intel HD audio.
Reproducible on Raspbian Jessie with libasound 1.0.28 and
snd_soc_hifiberry_dac.
--
Alistair Buxton
a.j.buxton at gmail.com
More information about the Alsa-devel
mailing list