when shutdown vm, the qemuProcessStop cleanup virtual interface in two steps: 1. qemuProcessKill kill qemu process, and vif disappeared 2. ovs-vsctl del-port from the brige if start a vm in the middle of the two steps, the new vm will reused the vif, but removed from bridge by step 2 Signed-off-by: Bingsong Si <owen.si@xxxxxxxxx> --- src/qemu/qemu_process.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index d36088ba98..706248815a 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -7483,9 +7483,11 @@ void qemuProcessStop(virQEMUDriverPtr driver, if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_MIDONET) { ignore_value(virNetDevMidonetUnbindPort(vport)); } else if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) { - ignore_value(virNetDevOpenvswitchRemovePort( - virDomainNetGetActualBridgeName(net), - net->ifname)); + virMacAddr mac; + if (virNetDevGetMAC(net->ifname, &mac) < 0 || !virMacAddrCmp(&mac, &net->mac)) + ignore_value(virNetDevOpenvswitchRemovePort( + virDomainNetGetActualBridgeName(net), + net->ifname)); } } -- 2.18.2