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