Someone smarter than me here helped me figure this out.
On this hypervisor there is also an ovs bridge, br1. Some time ago it
had a bunch of vnetX ports added to it, which have all since been
deleted. However they still remained in ovsdb:
root@demo01kvm01:~# ovs-vsctl show
3d2868d6-cd85-4039-ad45-079535b7a1a5
Bridge "br1"
Controller "tcp:127.0.0.1:6633"
Port "eth4"
Interface "eth4"
Port "eth3"
Interface "eth3"
Port "vnet2"
Interface "vnet2"
error: "could not open network device vnet2 (No such device)"
Port "eth5"
Interface "eth5"
Port "eth2"
Interface "eth2"
Port "br1"
Interface "br1"
type: internal
Port "vnet3"
Interface "vnet3"
error: "could not open network device vnet3 (No such device)"
Port "vnet4"
Interface "vnet4"
error: "could not open network device vnet4 (No such device)"
Port "vnet1"
Interface "vnet1"
error: "could not open network device vnet1 (No such device)"
ovs_version: "2.5.4"
Since the devices have been deleted, and don't actually exist, libvirtd
was happily allocating vnet1 id to the next device it needed. As soon as
that device got created, ovs took control of it, since it's already in
its database, so libvirtd would not be able to add it to br0. Error
message just said that resource is busy, but there was no way to tell
that it was busy because it's already part of br1.
Once I manually deleted vnet1 port from ovs (even though device doesn't
exist), everything worked fine, and domain got started properly.
root@demo01kvm01:~# ovs-vsctl del-port br1 vnet1
root@demo01kvm01:~# ovs-vsctl show
3d2868d6-cd85-4039-ad45-079535b7a1a5
Bridge "br1"
Controller "tcp:127.0.0.1:6633"
Port "eth4"
Interface "eth4"
Port "eth3"
Interface "eth3"
Port "vnet2"
Interface "vnet2"
error: "could not open network device vnet2 (No such device)"
Port "eth5"
Interface "eth5"
Port "eth2"
Interface "eth2"
Port "br1"
Interface "br1"
type: internal
Port "vnet3"
Interface "vnet3"
error: "could not open network device vnet3 (No such device)"
Port "vnet4"
Interface "vnet4"
error: "could not open network device vnet4 (No such device)"
ovs_version: "2.5.4"
root@demo01kvm01:~# virsh start demo01inmon01
Domain demo01inmon01 started
So I'm not sure if this counts as a bug, since this is just a conflict with
ovs. But it comes from trying to reuse device names, and allocating something
that was previously used and still exists in OVSDB.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1787680
Title:
guest fails to start if another running guest has an interface in the
same bridge
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1787680/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs