EMC VMAX does not handle delete case where volume no longer exists on backend

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

Bug Description

Scenario:

1. Create new volume (backend deviceID = 0944)
2. On Solutions Enabler (or UniSphere) unbind 0944 from the pool and de-allocate.
3. From OpenStack, delete volume.
Volume goes into "Error Deleting" state and cannot be removed from management without manual steps.

In emc_vmax_common.py --> _delete_volume(), one of the first things it does is:

        volumeInstance = self._find_lun(volume)
        if volumeInstance is None:
            LOG.error(_("Volume %(name)s not found on the array. "
                        "No volume to delete.")
                      % {'name': volumeName})
            return errorRet

However, _find_lun() does a GetInstance(cim_path) and this will raise an exception if the volume no longer exists rather than returning None as the code expects.

Tags: drivers emc
Mike Perez (thingee)
tags: added: drivers emc
Xing Yang (xing-yang)
Changed in cinder:
assignee: nobody → Xing Yang (xing-yang)
importance: Undecided → Medium
status: New → Triaged
Xing Yang (xing-yang)
Changed in cinder:
status: Triaged → In Progress
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/140586

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

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

commit c634b095b7cc0750d0e5d9eb75d800773f5c929f
Author: Xing Yang <email address hidden>
Date: Fri Dec 19 12:45:45 2014 -0500

    Handle the volume not found case in the VMAX driver

    When a volume cannot be found on the array, VMAX driver throws
    an exception. This brings a volume into error_deleting state during
    the volume deletion operation. This patch fixed it by returning None
    when a volume cannot be found.

    Closes-Bug: #1395830
    Change-Id: Iad714ff6e577bc9d7cf69b8654a7eb726969279e

Changed in cinder:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in cinder:
milestone: none → kilo-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in cinder:
milestone: kilo-2 → 2015.1.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.