[libvirt] [PATCHv2] virNetDevVethCreate: assign container if name based on parent if name

Daniel P. Berrange berrange at redhat.com
Thu Aug 29 11:50:28 UTC 2013


On Thu, Aug 29, 2013 at 02:46:43PM +0300, Oskari Saarenmaa wrote:
> On Thu, Aug 29, 2013 at 11:28:43AM +0100, Daniel P. Berrange wrote:
> > On Thu, Aug 29, 2013 at 01:00:15PM +0300, Oskari Saarenmaa wrote:
> > > Replace the loop trying to find a free veth interface name for the container
> > > by assigning the container if name to parent name + 'p' by default.
> > > Interface name selection logic is susceptible to race conditions, so try to
> > > select just one name by default and use that as a template for the second
> > > name.  The parent name can also be overriden in domain configuration.
> > 
> > This doesn't do anything to solve the race condition AFAICT. You still
> > have the window between finding a free name, and calling the ip command
> > to allocate it.
> 
> That's true, but I think this change makes sense as a standalone change for
> now; it makes sure libvirt uses the caller assigned names (if any) which
> let's the caller work around this by selecting the name they like.
> 
> > What we need here is a change that will catch the failure from the ip
> > command, and then go back to the start and find free names and retry
> > the ip command.
> 
> I don't like this approach.  It would require us to parse ip's stderr which
> would be quite a bit of fragile code to handle a case that shouldn't ever
> happen.  We should just select a unique interface name in the first place, I
> don't see any benefits in trying to force interface names to use low
> integers in their names.

That is not fixing the race condition at all.


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list