[openstack-dev] [nova] vif unplugging when deleting instance while resizing
Chris Friesen
chris.friesen at windriver.com
Fri Oct 30 21:11:09 UTC 2015
Hi,
I do have a situation where an instance was deleted while resizing, and there
are vswitch ports remaining in use when they shouldn't be.
I suspect that it's related to bug 1392527.
(https://bugs.launchpad.net/nova/+bug/1392527) That bug was involved a scenario
where we trigger a resize or cold migration, and while it's in progress we
delete the instance.
In the fix an audit was added to clean up the instance files, but I'm wondering
if we forgot to clean up the networking.
From what I can tell, in stable/kilo with neutron when doing a resize we will
only unplug the vifs on the source side when confirming the resize. The code
path looks like:
compute.manager.ComputeManager.confirm_resize()
compute.manager.ComputeManager._confirm_resize()
virt.libvirt.driver.LibvirtDriver.confirm_migration()
virt.libvirt.driver.LibvirtDriver._cleanup_resize()
virt.libvirt.driver.LibvirtDriver.unplug_vifs()
I'm concerned that if we delete the instance before the vm_state hits RESIZED,
then we will not ever confirm the resize on the host. (I think this could
happen since the instance host is set to the destination in
compute.manager.ComputeManager.resize_instance(), but the vm_state isn't set to
RESIZED until compute.manager.ComputeManager._finish_resize().
Then the audit from bug 1392527 runs and cleans up the instance files left on
the host, but we're left with the vswitch port still in use because nobody
unplugged it.
Can anyone poke holes in the description above?
The above is all supposition, I haven't reproduced it or gone through it in
enough detail to be certain that this is what's happening. That's the next step.
Chris
More information about the OpenStack-dev
mailing list