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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list