Summary: | "Assertion 'b' failed at pulsecore/memblock.c:454, function pa_memblock_acquire()" when running anything that deals with sound levels | ||
---|---|---|---|
Product: | PulseAudio | Reporter: | Sam Morris <sam> |
Component: | core | Assignee: | pulseaudio-bugs |
Status: | RESOLVED FIXED | QA Contact: | pulseaudio-bugs |
Severity: | major | ||
Priority: | medium | CC: | chris-freedesktop.org, lennart |
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Sam Morris
2012-04-12 07:13:12 UTC
This seems to correlate with the 'pid' and 'dbus-socket' files going missing from the pulseaudio directory in /tmp. $ cd $TMP $ find pulse-* pulse-fxXeyjndr5n9 pulse-fxXeyjndr5n9/native $ pavucontrol Assertion 'b' failed at pulsecore/memblock.c:454, function pa_memblock_acquire(). Aborting. Aborted $ pulseaudio -k E: [pulseaudio] main.c: Failed to kill daemon: No such process $ kill 93621 $ pavucontrol (at this point pulseaudio is re-launched and operates normally) $ find pulse-* pulse-fxXeyjndr5n9 pulse-fxXeyjndr5n9/native pulse-fxXeyjndr5n9/dbus-socket pulse-fxXeyjndr5n9/pid It seems that pa_stream_peek() doesn't take into account the possibility that there's a gap in s->record_memblockq. I'm not sure what would cause that gap, but the stack trace shows that there is a gap - there's no other explanation for s->peek_memchunk.memblock being NULL after a successful pa_memblockq_peek() call. The fix might be as simple as giving a silence memchunk to pa_memblockq_new() so that the gaps will be filled by silence, but maybe first it should be understood in which conditions record streams can have gaps - if there shouldn't be gaps at all, then the silence memchunk solution is only a workaround. (In reply to comment #1) > This seems to correlate with the 'pid' and 'dbus-socket' files going missing > from the pulseaudio directory in /tmp. That's peculiar. I don't know what that means. Especially the pid file disappearing sounds odd. > $ cd $TMP > > $ find pulse-* > pulse-fxXeyjndr5n9 > pulse-fxXeyjndr5n9/native > > $ pavucontrol > Assertion 'b' failed at pulsecore/memblock.c:454, function > pa_memblock_acquire(). Aborting. > Aborted > > $ pulseaudio -k > E: [pulseaudio] main.c: Failed to kill daemon: No such process > > $ kill 93621 What's 93621? > $ pavucontrol > > (at this point pulseaudio is re-launched and operates normally) > > $ find pulse-* > pulse-fxXeyjndr5n9 > pulse-fxXeyjndr5n9/native > pulse-fxXeyjndr5n9/dbus-socket > pulse-fxXeyjndr5n9/pid (In reply to comment #2) > It seems that pa_stream_peek() doesn't take into account the possibility that > there's a gap in s->record_memblockq. I'm not sure what would cause that gap, > but the stack trace shows that there is a gap - there's no other explanation > for s->peek_memchunk.memblock being NULL after a successful pa_memblockq_peek() > call. The fix might be as simple as giving a silence memchunk to > pa_memblockq_new() so that the gaps will be filled by silence, but maybe first > it should be understood in which conditions record streams can have gaps - if > there shouldn't be gaps at all, then the silence memchunk solution is only a > workaround. > > > (In reply to comment #1) > > This seems to correlate with the 'pid' and 'dbus-socket' files going missing > > from the pulseaudio directory in /tmp. > > That's peculiar. I don't know what that means. Especially the pid file > disappearing sounds odd. I suspect it's systemd's tmpfiles cleaning task going amok, though this is hard to confirm as the file only disappears every few days. I've added some debgug logging to the service and will report back if this appears to be the case. > > $ kill 93621 > > What's 93621? Sorry, that was the pulseaudio process. This happened to me when a script remounted the ramdisk on /dev/shm (/run/shm on Ubuntu), thus hiding all the files in there, including the shared memory segment that PulseAudio processes use to communicate. I believe this crash has been fixed since 3.0 by this commit: http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=dfd44036b54d65314664622ff93dfd18eee03c7b |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.