[pulseaudio-tickets] [Bug 90416] [abrt] pulseaudio: pa_atomic_load(): pulseaudio killed by SIGSEGV

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Jun 5 22:51:45 PDT 2015


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

Arun Raghavan <arun at accosted.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wim.taymans at gmail.com

--- Comment #12 from Arun Raghavan <arun at accosted.net> ---
Just to summarise the problem, here's what's happening:

0. We're running a playback and capture stream, which caused module-echo-cancel
to be autoloaded

1. We disable the card profile on which the echo canceller is running, making
the underlying sink go away

2. At the end of the profile change, the m-e-c sink-input gets killed (since it
said it could not be moved, which is what we do in the autoload case)

3. This makes us unload the m-e-c module, at which time we try to move the
original client stream away

4. At this point, there is no underlying sink for m-e-c, so the asyncmsgq is
NULL, and any messages that might be sent during the move will cause a crash
(we don't deal with a non-existent asyncmsgq, and trying to use something fake
causes sink input state to go out of whack and crash in other places). 

One way to fix this problem, is to not have the echo-cancel sink-input refuse
to move (which we do when the module is autoloaded). Instead, we allow the move
to happen, and then when it is completed, if we were autoloaded, we unload
ourselves.

This means that we'll never be in an inconsistent state with respect to the
existence of an underlying sink, which solves the problem at source. On the
other hand, this feels a bit ugly as a solution.

I'll hack this up, but I'd like to hear thoughts on this approach if there are
any.

-- 
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: <http://lists.freedesktop.org/archives/pulseaudio-bugs/attachments/20150606/04cfed7d/attachment-0001.html>


More information about the pulseaudio-bugs mailing list