← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1627694] Re: unshelving an instance doesn't rollback volumes connections on failure

 

So I'm actually not sure about this bug. When shelve-offloading an
instance, the instance is destroyed from the hypervisor but the network
and volumes are left intact for the instance in the database. When we
unshelve the instance, network and volume information is still available
in neutron and cinder, respectively. So if the unshelve fails, we don't
actually want to delete the network and volume information, because then
you can't try to unshelve them again later (on a different host for
example). So I think this is actually working as designed.

** Changed in: nova
       Status: Confirmed => Invalid

** No longer affects: nova/newton

** No longer affects: nova/mitaka

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1627694

Title:
  unshelving an instance doesn't rollback volumes connections on failure

Status in OpenStack Compute (nova):
  Invalid

Bug description:
  When creating and instance and it is being spawned for the first time
  fails, the instance's volumes' initialize_connection is being rolled-
  back, but when unshelving an shelved-offloaded instance, there's no
  rollback in case of failure.

  The reason is that when spawning an instance for the first time, nova-compute calls initialize_connection using the _build_resources() method:
  https://github.com/openstack/nova/blob/93e689516da0302b06c2760bb82c5004ae057913/nova/compute/manager.py#L1902
  That context-aware method will also take care of rollback in case of a failure in spawning, and will terminate_connection of the volumes:
  https://github.com/openstack/nova/blob/93e689516da0302b06c2760bb82c5004ae057913/nova/compute/manager.py#L2095

  But, when unshelving an instance, initialize_connection is not called in a context aware method, and no rollback in happening when spawning fails.
  https://github.com/openstack/nova/blob/93e689516da0302b06c2760bb82c5004ae057913/nova/compute/manager.py#L4330

  This makes the volumes stay connected to the node even-though the instance is shelved-offloaded.
  If you want to see this problem, replace the driver.spawn() call with a "raise Exception", and see the volumes have connection to the node even though they shouldn't have.

  I'm using openstack Liberty, but I can see this problem in current
  master (pre-Newton)

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1627694/+subscriptions


References