VMAX: Failed clones do not result in created target vol(s) getting cleaned up

Bug #1440154 reported by Carl Pecinovsky
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Medium
Xing Yang

Bug Description

In the Kilo VMAX driver, support was added to allow the clone of multi-meta source volumes. The cloning control is handled in the emc_vmax_common-->_create_clone_v2() method. A rollback data object is not maintained in this method to allow cleanup of volumes that have been created if a subsequent operation should fail, and there is no exception handling in place here or at the caller's level. Since the loop adds each member to the base volume one at a time, there is at most 2 orphaned (not managed) volumes that need to be cleaned up: The current composite base volume and the latest target meta volume created. Please check the VMAX V3 flow as well.

Secondly, the PowerVC development team has determined that the source volume and target volume of a clone operation can reside in different pools for VMAX V2. And as discussed on prior conf calls, it is a requirement for us to allow this capability. And when the source volume is comprised of multiple metas of different sizes, the target volume does get created in the proper pool being requested per the clone volume extraSpecs. However the _create_clone_v2() has short-circuit logic at the top such that the _create_v2_replica_and_delete_clone_relationship() method is called immediately if the source is a simple volume or has metas of equal sizes, and this results in a target getting created always in the same pool as the source. This means the two cases end up with different behavior as to where the target ends up. If this can be considered a bug, we would like this fixed such that the extra specs pool is honored for every case. It's related to this defect because the rollback cleanup would then apply to those cases as well. Or if you need a separate bug opened, please let me know. Or if this is new function/bug that needs to wait until Liberty, let me know if we need to do anything to put the request in place for that release. Thanks.

Tags: drivers emc
Xing Yang (xing-yang)
Changed in cinder:
assignee: nobody → Xing Yang (xing-yang)
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (master)

Fix proposed to branch: master
Review: https://review.openstack.org/177517

Changed in cinder:
status: Triaged → In Progress
Mike Perez (thingee)
tags: added: drivers emc
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/177517
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=5490bddf804281f76fc9ae8289c1f44976f4b5a4
Submitter: Jenkins
Branch: master

commit 5490bddf804281f76fc9ae8289c1f44976f4b5a4
Author: Xing Yang <email address hidden>
Date: Fri Apr 24 22:42:28 2015 -0400

    Clean up failed clones in VMAX driver

    If the clone operation fails, clean up is not done properly in
    the VMAX driver. This patch catches the exception during the
    clone operation, removes the target volume, and then re-throw
    the exception.

    Closes-Bug: #1440154
    Change-Id: I548d5da09cb66077f04b1c5f1aa168c5bd5cf02e

Changed in cinder:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in cinder:
milestone: none → liberty-1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in cinder:
milestone: liberty-1 → 7.0.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.