[libvirt] [PATCH - 2 alternatives] util: fix libvirtd startup failure due to netlink error

Eric Blake eblake at redhat.com
Tue May 1 19:16:04 UTC 2012


On 05/01/2012 01:05 PM, Laine Stump wrote:
> The two following patches fix the same problem (described in
> https://bugzilla.redhat.com/show_bug.cgi?id=816465) in two alternate
> ways - one by retrying the failing operation after a delay, the other by
> using knowledge of how libnl works internally to artificially "reserve"
> a particular address so libnl doesn't attempt to bind to it.
> 
> You might think that libnl is the right place to fix this bug.
> Unfortunately, that isn't possible, because it would involve changing
> libnl's API - currently libnl decides what address to use for future
> binds of a netlink socket at the time nl_handle_alloc() is called, but
> doesn't actually attempt to bind it. Later, during nl_connect(), it
> calls bind() with the address it had earlier decided. It would be nice
> if we could just retry the bind with a different address when the first
> attempt failed, but libnl allows client applications to retrieve the
> bind address *before nl_connect() is called*, so an application may have
> already gotten the address prior to calling nl_connect(), and changing
> it would render the applications information incorrect.

Does libnl-3 have the same issue?  It would be interesting if Serge
Hallyn's patches to support libnl-3 ended up allowing us to move to a
version of the library that doesn't have the same fundamental flaw.
Have we complained about this flaw to the libnl upstream folks?

> 
> So the best we can do (for now at least) is work around the problem, and
> these are two possible workarounds.

I'm still debating which workaround is more palatable, but agree that we
have to do something.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120501/8a0e9c15/attachment-0001.sig>


More information about the libvir-list mailing list