Comment 11 for bug 1880389

Revision history for this message
tony (yanhongchang5) wrote :

Hi Sean,

thanks for your analysis about the log, I also agree with you.

and I have do some investigation about why the neutron will send the 'network-vif-plugged' signal to nova.

@slawek,
hi slawek,

I don't think the problem https://launchpad.net/bugs/1834045 is same to my, the bug 1834045 is not trigger the notify of 'network-vif-plugged', and my is receive the unexcept single.

below is my analysis, I hope that will help U to locate the issue.

I found that the the pre_live_migration

https://github.com/openstack/nova/blob/stable/queens/nova/compute/manager.py#L6299-L6300

here will post port update to neutron-server with profile {"migrating_to": "bj-sjhl-os-compute-test-21-55"}(the "bj-sjhl-os-compute-test-21-55" is source node), and in the process of port update, the neutron-server will clear binding level in here:

https://github.com/openstack/neutron/blob/stable/queens/neutron/plugins/ml2/plugin.py#L1428-L1429

and then changed the port status from ACTIVE to DOWN.

then in here:
https://github.com/openstack/neutron/blob/stable/queens/neutron/plugins/ml2/plugin.py#L1506-L1509
attempt to binding the port again. and the port's status has changed again, from DOWN to ACTIVE.

the port status changed from DOWN to ACTIVE, will trigger the notify 'network-vif-plugged' to nova, and the nova-compute in source host will received the signal, and do the really live migration in libvirt dirver.

so IMO, I think the port status should not change when update with profile{"migrating_to": XXXXX).