[pulseaudio-discuss] [PATCH 3/4] echo-cancel: Handle underlying sink going away better when autoloaded
Alexander E. Patrakov
patrakov at gmail.com
Tue Jun 9 09:22:02 PDT 2015
09.06.2015 12:08, arun at accosted.net wrote:
> From: Arun Raghavan <git at arunraghavan.net>
>
> When we the underlying sink/source goes away, there is an intermediate
> state where the asyncmsgqs that we were using for the sink-input and
> source-output go away. This is usually okay if the sink-input and
> source-output are moved to another device, but can be problematic if we
> don't support moving (which is the case when the filter is autoloaded).
>
> This becomes a problem because of the following chain of events:
>
> * The underlying sink goes away
>
> * Moving the filter sink-input fails (because it is autloaded)
> * At this point the sink-input has no underlying sink, and thus
> no underlying asyncmsgq
> * This also applies to all sink-inputs connected to the echo-cancel
> module
>
> * The sink-input is killed, triggering a module unload
>
> * On unlink, module-rescue-streams tries to move sink-inputs to
> another sink, starting with a START_MOVE message
>
> * There is no asyncmsgq for the message, so we crash
> * We can't just perform a NULL check for the asyncmsgq, since there
> are state changes we need to effect during the move
>
> To fix this, we pretend to allow the move to the new sink, and then
> unlink ourselves *after* the move is complete. This ensures that we
> never find ourselves in a position where we need the underlying
> sink/asyncmsgq to be present when it is not.
>
> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90416
I see that there is also a patch for module-equalizer-sink, but no
patches for module-remap-sink, module-virtual-surround-sink and
module-virtual-sink (i.e. the example). If patches are not required
there, it would be nice to mention this explicitly here in the commit
message.
I have not looked at the changes in detail, so cannot yet ACK the patches.
--
Alexander E. Patrakov
More information about the pulseaudio-discuss
mailing list