[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
Thu Jun 30 16:28:52 UTC 2016


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

Tanu Kaskinen <tanuk at iki.fi> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |96750

--- Comment #13 from Tanu Kaskinen <tanuk at iki.fi> ---
This doesn't seem like a regression, but since this is a crasher, I'll mark
this tentatively as a 10.0 blocker anyway.

The current status is that I'm looking into the possibility of removing all
memblock type changes. It seems nicer than adding more locking to make the type
changes safe. There are only two cases where we change memblock types on the
fly: we make imported memblocks local when a client disconnects (related to
this crash), and alsa-source creates memblocks from alsa memory that is valid
only for a short time, so before the memory becomes invalid, the audio has to
be copied elsewhere and the memblock type has to be changed.

Making imported memblocks local doesn't seem necessary, because I think the
underlying memory area stays accessible as long as needed. Maybe the idea was
to make sure that we don't keep old client mempools around in the server for
longer than absolutely necessary, but I don't understand why having them around
a bit longer would be a problem.

The alsa-source use case seems to be about avoiding one memory copy, if the
recorded audio isn't needed after the pa_source_post() call. When dealing with
normal client streams, however, the memory has to be copied anyway before it
can be sent to the client. I can't think of any use cases where the current
approach would save memory copies, except the case where a source runs without
anything connected to it, but that's hardly a use case worth optimizing for...

I don't expect fast progress on this, and I worry how I can reach confidence in
not breaking anything. The code is complicated, and at least so far I don't
feel I understand it well, and I plan to remove big parts of it (like memblock
revoking and releasing - those things seem pretty useless to me, but usually
things have purpose)...


Referenced Bugs:

https://bugs.freedesktop.org/show_bug.cgi?id=96750
[Bug 96750] [TRACKER] PulseAudio 10.0 release
-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-bugs/attachments/20160630/aae73268/attachment-0001.html>


More information about the pulseaudio-bugs mailing list