[openstack-dev] [openstack][nova] Port unbound from active VM

Kevin Benton kevin at benton.pub
Fri Oct 14 08:23:41 UTC 2016


I suggest filing a bug against nova for this.

On Thu, Oct 13, 2016 at 9:44 AM, Ajay Kalambur (akalambu) <
akalambu at cisco.com> wrote:

> Any comments/input on this?
> Ajay
>
>
> From: Ajay Kalambur <akalambu at cisco.com>
> Date: Monday, October 10, 2016 at 6:31 PM
> To: "OpenStack Development Mailing List (not for usage questions)" <
> openstack-dev at lists.openstack.org>
> Subject: [openstack][nova] Port unbound from active VM
>
> Hi
> There seems to be a corner case bug in nova code. Steps to reproduce it are
>
>    1. Create a neutron port
>    2. Create a VM and launch instance with this port
>    3. Shutdown nova compute and network agent on compute node
>    4. Unbind port from VM and delete the VM (offline delete)
>    5. Now create a VM with same port but on a different compute node
>    6. Bring up nova compute on old node
>
> It basically runs the reap for deleted instances and cleanes up VM from
> libvirt. In the process it unbinds the pre-existing ports and ends up
> unbinding the port from an active VM on a different compute node
> Reason nova simply sends a blind port-update with binding_host: “” even if
> that port is bound to a different instance
>
>
> So following fix seemed to help any suggestions on a better fix
>
> In nova/network/neutronv2/api.py. So basically when neutron sees no ports
> for this instance don’t attempt an unbind
> In this case
> data = neutron.list_ports(**search_opts)
> Call in deallocate_for_instance returns empty ports
>
>
>
>       # Reset device_id and device_owner for the ports that are skipped
>
>         if data.get('ports', []):
>
>             self._unbind_ports(context, ports_to_skip, neutron)
>
>         else:
>
>             LOG.debug("Neutron sees a different view of this port hence
> skipping unbind”)
>
>
>
> Ajay
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20161014/419f3678/attachment.html>


More information about the OpenStack-dev mailing list