Comment 0 for bug 1670628

Revision history for this message
wangyalei (yalei) wrote : nova-compute will try to re-plug the vif even if it exists

Description
===========
In mitaka version, deploy neutron with ovs-dpdk.
If we stop ovs-agent, then re-start the nova-compute,the vm in the host will get network connection failed.

Steps to reproduce
==================
deploy mitaka. with neutron, enabled ovs-dpdk, choose one compute node, where vm has network connection.
run this in host,
1. #systemctl stop neutron-openvswitch-agent.service
2. #systemctl restart openstack-nova-compute.service

then ping $VM_IN_THIS_HOST

Expected result
===============
ping $VM_IN_THIS_HOST would would success

Actual result
=============
ping $VM_IN_THIS_HOST failed.

Environment
===========
Centos7 ovs2.5.1 dpdk 2.2.0

Reason:
after some digging, I found that nova-compute will try to plug the vif every time when it booting.
Specially for vhostuser port, nova-compute will not check whether it exists as legacy ovs,and it will re-plug the port with vsctl args like "--if-exists del-port vhuxxxx".
(refer https://github.com/openstack/nova/blob/stable/mitaka/nova/virt/libvirt/vif.py#L679-L683)
after recreate the ovs vhostuser port, it will not get the right vlan tag which set from ovs agent.

In the test environment, after restart the ovs agent, the agent will set a proper vlan id for the port. and the network connection will be resumed.

Not sure it's a bug or config issue, do I miss something?