[pulseaudio-tickets] [Bug 95352] PA crash on Assertion 'pa_atomic_load(&b->pool->stat.n_imported) > 0

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed May 25 15:39:10 UTC 2016


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

--- Comment #10 from Tanu Kaskinen <tanuk at iki.fi> ---
Both backtraces show that a client connection is being torn down, and imported
memblocks from the client are being converted into local memblocks. That's
where the crash occurs. Both backtraces show that at the same time, a memblock
is being freed.

Converting a memblock from imported to local and freeing an imported memblock
both decrement the n_imported counter. My guess is that the counter gets
decremented twice for the same memblock. There are no safeguards preventing
this, as far as I can see.

The memblock type is being read from multiple threads without locking, so when
a memblock is converted from imported to local, the memblock's type changes,
but other threads may still see the old value. I think we need to add more
aggressive locking to the places where we deal with imported memblocks (and
maybe other types too, but I haven't yet checked if there are other type
transitions than imported -> local).

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-bugs/attachments/20160525/1948d82b/attachment.html>


More information about the pulseaudio-bugs mailing list