[pulseaudio-discuss] Semaphore lockup when using threaded mainloops excessively

Daniel Mack zonque at gmail.com
Fri Apr 22 02:20:41 PDT 2011


On Fri, Apr 22, 2011 at 10:58 AM, Colin Guthrie <gmane at colin.guthr.ie> wrote:
> 'Twas brillig, and Colin Guthrie at 01/04/11 14:25 did gyre and gimble:
>> I've pushed this to git master now so that more people can test.
>
> I've just be revisiting this one after your pa_poll changes.
>
> I tried running two at once and both bailed quite quickly with:
>
> Connection (23 of 1000) established.
> Stream error: Too large
> Aborted
>
>
> Connection (15 of 1000) established.
> Stream error: Too large
> Aborted

That is likely a different issue.

> The abort happened at the same time so both tests aborted at the same
> time. But I rant it again, and both instances happily ran up to >500
> connections each.
>
>
> The only (relevant) place I can see this error occurring is in
> sink-input.c in pa_sink_input_new()
>
> But this should only happen when > 32 streams are played on a a sink....
>  as each test can use 16 streams I guess there are times when >32 is
> possible. Perhaps the test should limit it to 15 streams such that this
> likelyhood is reduced?
>
> Anyway a run up to ~500 is pretty good. Is this more or less fixed now
> do you think?

It is indeed fixed by Lennart in commit 575ba65714 ("memblockq: decode
unset chunks as NULL chunks again") from last night. We had a little
session, were able to reproduce it and he fixed it within an hour or
so :)

Another fix for OSX (only) is in my tree now, I'll send a pull request soon.

Thanks,
Daniel



More information about the pulseaudio-discuss mailing list