← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1475411] [NEW] During post_live_migration the nova libvirt driver assumes that the destination connection info is the same as the source, which is not always true

 

Public bug reported:

The post_live_migration step for Nova libvirt driver is currently making
a bad assumption about the source and destination connector information.
The destination connection info may be different from the source which
ends up causing LUNs to be left dangling on the source as the BDM has
overridden the connection info with that of the destination.

Code section where this problem is occuring:

https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L6036

At line 6038 the potentially wrong connection info will be passed to
_disconnect_volume which then ends up not finding the proper LUNs to
remove (and potentially removes the LUNs for a different volume
instead).

By adding debug logging after line 6036 and then comparing that to the
connection info of the source host (by making a call to Cinder's
initialize_connection API) you can see that the connection info does not
match:

http://paste.openstack.org/show/TjBHyPhidRuLlrxuGktz/

Version of nova being used:

commit 35375133398d862a61334783c1e7a90b95f34cdb
Merge: 83623dd b2c5542
Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
Date:   Thu Jul 16 02:01:05 2015 +0000

    Merge "Port crypto to Python 3"

** Affects: nova
     Importance: Undecided
     Assignee: Anthony Lee (anthony-mic-lee)
         Status: New


** Tags: live-migration

** Changed in: nova
     Assignee: (unassigned) => Anthony Lee (anthony-mic-lee)

** Description changed:

  The post_live_migration step for Nova libvirt driver is currently making
  a bad assumption about the source and destination connector information.
  The destination connection info may be different from the source which
  ends up causing LUNs to be left dangling on the source as the BDM has
  overridden the connection info with that of the destination.
  
  Code section where this problem is occuring:
  
  https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L6036
  
  At line 6038 the potentially wrong connection info will be passed to
  _disconnect_volume which then ends up not finding the proper LUNs to
  remove (and potentially removes the LUNs for a different volume
  instead).
  
- By adding debug logging after line 6036 and then compare that to the
+ By adding debug logging after line 6036 and then comparing that to the
  connection info of the source host (by making a call to Cinder's
  initialize_connection API) you can see that the connection info does not
  match:
  
  http://paste.openstack.org/show/TjBHyPhidRuLlrxuGktz/
  
  Version of nova being used:
  
  commit 35375133398d862a61334783c1e7a90b95f34cdb
  Merge: 83623dd b2c5542
  Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
  Date:   Thu Jul 16 02:01:05 2015 +0000
  
-     Merge "Port crypto to Python 3"
+     Merge "Port crypto to Python 3"

-- 
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/1475411

Title:
  During post_live_migration the nova libvirt driver assumes that the
  destination connection info is the same as the source, which is not
  always true

Status in OpenStack Compute (nova):
  New

Bug description:
  The post_live_migration step for Nova libvirt driver is currently
  making a bad assumption about the source and destination connector
  information. The destination connection info may be different from the
  source which ends up causing LUNs to be left dangling on the source as
  the BDM has overridden the connection info with that of the
  destination.

  Code section where this problem is occuring:

  https://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L6036

  At line 6038 the potentially wrong connection info will be passed to
  _disconnect_volume which then ends up not finding the proper LUNs to
  remove (and potentially removes the LUNs for a different volume
  instead).

  By adding debug logging after line 6036 and then comparing that to the
  connection info of the source host (by making a call to Cinder's
  initialize_connection API) you can see that the connection info does
  not match:

  http://paste.openstack.org/show/TjBHyPhidRuLlrxuGktz/

  Version of nova being used:

  commit 35375133398d862a61334783c1e7a90b95f34cdb
  Merge: 83623dd b2c5542
  Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
  Date:   Thu Jul 16 02:01:05 2015 +0000

      Merge "Port crypto to Python 3"

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


Follow ups