[pulseaudio-discuss] Problem when loading module-always-sink or module-alsa-sink

Tanu Kaskinen tanuk at iki.fi
Sat Mar 13 22:57:15 PST 2010

la, 2010-03-13 kello 14:59 -0300, Maginot Junior kirjoitti:
> So I tried to ran pulseaudio with -vvvv option, this is the output:
> $ LANG=c pulseaudio -vvvv
> I: main.c: setrlimit(RLIMIT_NICE, (31, 31)) failed: Operation not permitted
> I: main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
> D: core-rtclock.c: Timer slack is set to 50 us.
> I: core-util.c: Failed to acquire high-priority scheduling: No such
> file or directory
> I: main.c: This is PulseAudio 0.9.21
> D: main.c: Compilation host: i686-pc-linux-gnu
> D: main.c: Compilation CFLAGS: -g -O2 -Wall -W -Wextra -pipe
> -Wno-long-long -Winline -Wvla -Wno-overlength-strings
> -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op
> -Wsign-compare -Wformat-security -Wmissing-include-dirs
> -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self
> -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes
> -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations
> -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align
> -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math
> -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option
> D: main.c: Running on host: Linux i686 #2 SMP Wed Jan 27
> 17:14:41 BRST 2010
> D: main.c: Found 1 CPUs.
> I: main.c: Page size is 4096 bytes
> D: main.c: Compiled with Valgrind support: no
> D: main.c: Running in valgrind mode: no
> D: main.c: Running in VM: yes
> D: main.c: Optimized build: yes
> D: main.c: All asserts enabled.
> I: main.c: Machine ID is avant.
> I: main.c: Using runtime directory /home/maginot/.pulse/avant-runtime.
> I: main.c: Using state directory /home/maginot/.pulse.
> I: main.c: Using modules directory /usr/lib/pulse-0.9.21/modules.
> I: main.c: Running in system mode: no
> W: pid.c: Stale PID file, overwriting.
> I: main.c: Fresh high-resolution timers available! Bon appetit!
> I: cpu-x86.c: CPU flags: MMX SSE SSE2 SSE3 SSSE3 SSE4_1
> I: svolume_mmx.c: Initialising MMX optimized functions.
> I: remap_mmx.c: Initialising MMX optimized remappers.
> I: svolume_sse.c: Initialising SSE2 optimized functions.
> I: remap_sse.c: Initialising SSE2 optimized remappers.
> I: sconv_sse.c: Initialising SSE2 optimized conversions.
> D: memblock.c: 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
> D: database-gdbm.c: Opened GDBM database
> '/home/maginot/.pulse/avant-device-volumes.i686-pc-linux-gnu.gdbm'
> I: module-device-restore.c: Sucessfully opened database file
> '/home/maginot/.pulse/avant-device-volumes'.
> I: module.c: Loaded "module-device-restore" (index: #0; argument: "").
> D: database-gdbm.c: Opened GDBM database
> '/home/maginot/.pulse/avant-stream-volumes.i686-pc-linux-gnu.gdbm'
> I: module-stream-restore.c: Sucessfully opened database file
> '/home/maginot/.pulse/avant-stream-volumes'.
> I: module.c: Loaded "module-stream-restore" (index: #1; argument: "").
> D: database-gdbm.c: Opened GDBM database
> '/home/maginot/.pulse/avant-card-database.i686-pc-linux-gnu.gdbm'
> I: module-card-restore.c: Sucessfully opened database file
> '/home/maginot/.pulse/avant-card-database'.
> I: module.c: Loaded "module-card-restore" (index: #2; argument: "").
> I: module.c: Loaded "module-augment-properties" (index: #3; argument: "").
> N: alsa-util.c: Disabling timer-based scheduling because running inside a VM.
> E: fdsem.c: Assertion 'pa_atomic_dec(&f->data->waiting) >= 1' failed
> at pulsecore/fdsem.c:283, function pa_fdsem_before_poll(). Aborting.
> Like you may notice, it finishes with an error line: E: fdsem.c:
> Assertion 'pa_atomic_dec(&f->data->waiting) >= 1' failed at
> pulsecore/fdsem.c:283, function
> After tweaking around a little I first disabled module-always-sink
> from /etc/pulse/default.pa

Before disabling module-always-sink, was your default.pa the default one
shipped with the official pulseaudio 0.9.21 tarball? If it was, then
disabling module-always-sink shouldn't help anything, because the crash
happens before loading that module is even attempted. The crash probably
happens in module-udev-detect.

Since the second try didn't crash, this apparently doesn't happen
always. But on the third try it crashed in the same place (probably), so
I guess you can reproduce this reliably enough to produce a stack trace.
So, please file a bug that has a link to this mailing list thread and
the stack trace. Instructions for filing bugs can be found at


Getting a stack trace of pulseaudio can be a bit tricky, but that link
has instructions for that too.

Loading module-udev-detect is part of the default start-up procedure,
and it apparently works reliably for pretty much everybody, so I'm
afraid that if the stack trace doesn't reveal any obvious bugs, this
will be hard to debug, because whatever triggers the crash, it's
specific to your environment.

Tanu Kaskinen

More information about the pulseaudio-discuss mailing list