[pulseaudio-tickets] [Bug 45373] [alsa-sink] memblockq.c: Assertion '!bq->blocks || (bq->write_index + (int64_t)chunk.length <= bq->blocks->index)' failed at pulsecore/memblockq.c:408, function pa_memblockq_push(). Aborting.

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Apr 27 06:03:51 PDT 2012


https://bugs.freedesktop.org/show_bug.cgi?id=45373

--- Comment #11 from Tanu Kaskinen <tanuk at iki.fi> 2012-04-27 06:03:51 PDT ---
The indexes are peculiarly large, nearly 2 gigabytes. That would point to
32-bit integer overflow (or underflow), but on the other hand, the difference
to the overflow point is still more than 200 megabytes, which makes the
overflow scenario sound unlikely. (To be clear: there shouldn't be any 32-bit
variables involved in the memblockq index calculations.)

Another strange thing is that the index difference between the second last and
the last chunk is more than 600 megabytes. WTF? One explanation would be that
pa_source_output_push() was given a 600 MB chunk, which is more than the
delay_memblockq can store (which is 32 MB). If that's what's happening, it will
insert a gap in the queue by the pa_memblockq_seek() call in
pa_source_output_push(). The memblockq code is impossible to understand, so I
don't know how an extremely large chunk would lead to a crash, but that sounds
like a possible cause (extra large chunks shouldn't crash memblockq, but maybe
such cases just aren't tested much, so there can be bugs).

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the pulseaudio-bugs mailing list