Making module-zeroconf-publish non-blocking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux