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.
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 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:
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 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/ TjBHyPhidRuLlrx uGktz/
Version of nova being used:
commit 35375133398d862 a61334783c1e7a9 0b95f34cdb
Merge: 83623dd b2c5542
Author: Jenkins <email address hidden>
Date: Thu Jul 16 02:01:05 2015 +0000
Merge "Port crypto to Python 3"