Bug 1203740

Summary: live migration with attached volume peforms breaking rollback on failure
Product: Red Hat OpenStack Reporter: Eoghan Glynn <eglynn>
Component: openstack-novaAssignee: Lee Yarwood <lyarwood>
Status: CLOSED CURRENTRELEASE QA Contact: nlevinki <nlevinki>
Severity: high Docs Contact:
Priority: high    
Version: 6.0 (Juno)CC: berrange, dasmith, eglynn, kchamart, lyarwood, sbauza, sferdjao, sgordon, srevivo, vromanso
Target Milestone: ---Keywords: ZStream
Target Release: 7.0 (Kilo)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-05 17:10:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eoghan Glynn 2015-03-19 14:59:06 UTC
Description of problem:

During live migration with attached volume, nova ignores initialize connection errors and does not roll back.


Version-Release number of selected component (if applicable):

openstack-nova-2014.2.2-1.el7ost


How reproducible:

Depends on simulating a initialize_connection failure during live migration.


Steps to Reproduce:
1. Create a nova instance
2. Attach a cinder volume
3. Perform ‘nova live-migration’ to a different backend
4. Cause a failure in the ‘initialize_connection’ call to the new host
5. Wait for nova to call ‘terminate_connection’ on the connection to the original host


Actual results:

Instance remains on original host with Cinder volume attached according to Cinder but no longer mapped on the backend. This removes connectivity from storage to the host and can cause data loss.


Expected results:

A clean roll back should occur on failure.


Additional info:

What seems to be happening is that Nova is not stopping the migration when receiving an error from Cinder and ends up calling terminate_connection for the src host when it should not be.