[pulseaudio-discuss] Making module-zeroconf-publish non-blocking

Arun Raghavan arun.raghavan at collabora.co.uk
Sun May 19 21:16:38 PDT 2013


On Fri, 2013-05-17 at 16:49 +0300, Tanu Kaskinen wrote:
> On Wed, 2013-05-15 at 18:58 +0530, Arun Raghavan wrote:
> > On Wed, 2013-05-15 at 14:06 +0300, Tanu Kaskinen wrote:
> > > On Wed, 2013-05-15 at 16:02 +0530, Arun Raghavan wrote:
> > > > On Wed, 2013-05-15 at 13:05 +0300, Tanu Kaskinen wrote:
> > > > > On Wed, 2013-05-15 at 10:13 +0530, Arun Raghavan wrote:
> > > > However,
> > > > I don't see the timeout take this long every time. I'm trying to find
> > > > out why this is.
> > 
> > Okay, so I know the source of the problem now. avahi_client_new() runs a
> > Ping() on the Avahi D-Bus service, expecting that to cause it to
> > autospawn if it isn't running. Avahi autospawn is currently broken due
> > to it's activation file not having a User=… line.
> > 
> > The D-Bus activation logic marks an activation pending, then tries to
> > activate, fails because of this, and immediately returns. If the same
> > call is made again soon thereafter, it will block (since it thinks there
> > is an activation pending) until the pending activation times out (25s
> > from when the first activation was triggered).
> > 
> > So that explains all the weird behaviour there.
> 
> So is this also a D-Bus bug (in addition to being a configuration
> mistake)? Shouldn't the activation be cleared immediately after it has
> failed, so that subsequent pings don't end up waiting? Have you made a
> fix for D-Bus, or have you reported a bug? If not, I might do one of
> those.

Not yet. I was going to try to hack up a fix, or failing that, file a
bug, but I'm happy to let you do it. ;)

The relevant code is:

http://cgit.freedesktop.org/dbus/dbus/tree/bus/activation.c#n2008

-- Arun



More information about the pulseaudio-discuss mailing list