Bug#653320: pulseaudio: Assertion 'length % bq->base == 0' failed, kills daemon

David Fries david at fries.net
Mon Dec 26 22:01:21 UTC 2011

Package: pulseaudio
Version: 0.9.21-3+squeeze1
Severity: normal

I found that pa_stream_write with an offset that's not a multiple of
the base sample size causes pulseaudio to assert and abort.  This is
not the case for the nbytes parameter of how many bytes to write, that
is allowed to not be a multiple of the sample size, but the seek
offset parameter must be a multiple of the sample size or it asserts.

E: memblockq.c: Assertion 'length % bq->base == 0' failed at
pulsecore/memblockq.c:519, function pa_memblockq_drop(). Aborting.

pulseaudio 1.0-4 gives the following,
E: [alsa-sink] memblockq.c: Assertion 'length % bq->base == 0' failed
at pulsecore/memblockq.c:600, function pa_memblockq_drop(). Aborting.

I've fixed the program causing it, I just wanted to make others aware
that any program that can play audio can take down the audio daemon.

-- System Information:
Debian Release: 6.0.3
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (x86_64)

Kernel: Linux 3.2.0-rc5+ (SMP w/4 CPU cores)
Locale: LANG=C, LC_CTYPE=en_US.ISO-8859-15 (charmap=ISO-8859-15)
Shell: /bin/sh linked to /bin/dash

Versions of packages pulseaudio depends on:
ii  adduser                3.112+nmu2        add and remove users and groups
ii  consolekit             0.4.1-4           framework for defining and trackin
ii  libasound2             1.0.23-2.1        shared library for ALSA applicatio
ii  libc6                  2.11.2-10         Embedded GNU C Library: Shared lib
ii  libcap2                1:2.19-3          support for getting/setting POSIX.
ii  libdbus-1-3            1.2.24-4+squeeze1 simple interprocess messaging syst
ii  libgdbm3               1.8.3-9           GNU dbm database routines (runtime
ii  libice6                2:1.0.6-2         X11 Inter-Client Exchange library
ii  libltdl7               2.2.6b-2          A system independent dlopen wrappe
ii  libpulse0              0.9.21-3+squeeze1 PulseAudio client libraries
ii  libsamplerate0         0.1.7-3           Audio sample rate conversion libra
ii  libsm6                 2:1.1.1-1         X11 Session Management library
ii  libsndfile1            1.0.21-3+squeeze1 Library for reading/writing audio 
ii  libspeexdsp1           1.2~rc1-1         The Speex extended runtime library
ii  libudev0               164-3             libudev shared library
ii  libx11-6               2:1.3.3-4         X11 client-side library
ii  libxtst6               2:1.1.0-3         X11 Testing -- Record extension li
ii  lsb-base               3.2-23.2squeeze1  Linux Standard Base 3.2 init scrip
ii  udev                   164-3             /dev/ and hotplug management daemo

Versions of packages pulseaudio recommends:
pn  gstreamer0.10-pulseaudio      <none>     (no description available)
pn  libasound2-plugins            <none>     (no description available)
pn  pulseaudio-esound-compat      <none>     (no description available)
pn  pulseaudio-module-x11         <none>     (no description available)

Versions of packages pulseaudio suggests:
pn  paman                  <none>            (no description available)
pn  paprefs                <none>            (no description available)
ii  pavucontrol            0.9.9-1           PulseAudio Volume Control
pn  pavumeter              <none>            (no description available)
ii  pulseaudio-utils       0.9.21-3+squeeze1 Command line tools for the PulseAu

-- no debconf information

More information about the pkg-pulseaudio-devel mailing list