← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2016173] [NEW] Cinder attachment delete API failure leaves volume in state 'detaching'

 

Public bug reported:

Reported by Gorka Eguileor of the Cinder team and confirmed in a local
devstack:

During a volume detach, if Cinder API responds with an error when Nova
calls the attachment delete API, the volume will be left in status
'detaching' instead of 'in-use'.

When the volume is in state 'detaching', any later detach attempts will
be rejected because the state is not 'in-use'.

Repro steps:

1. Create a volume
openstack volume create

2. Create an instance
openstack server create

3. Attach the volume to the instance
openstack server add volume

4. Fake an error in the Cinder attachment delete API
(I just raised an exception in cinder/api/v3/attachments.py)

5. Try to detach the volume from the instance
openstack server remove volume


Expected result:

Detach fails and the volume remains in 'in-use' status

Actual result:

Detach fails and the volume is stuck in 'detaching' status


Nova calls the Cinder API to update the volume status to 'detaching' in compute/api but it does not call Cinder API to rollback the volume status from 'detaching' if the Cinder API attachment delete call returns an error.

I think we just need to call the rollback detaching Cinder API in this
case to resolve the issue.

** Affects: nova
     Importance: Undecided
     Assignee: melanie witt (melwitt)
         Status: Triaged


** Tags: volumes

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

Title:
  Cinder attachment delete API failure leaves volume in state
  'detaching'

Status in OpenStack Compute (nova):
  Triaged

Bug description:
  Reported by Gorka Eguileor of the Cinder team and confirmed in a local
  devstack:

  During a volume detach, if Cinder API responds with an error when Nova
  calls the attachment delete API, the volume will be left in status
  'detaching' instead of 'in-use'.

  When the volume is in state 'detaching', any later detach attempts
  will be rejected because the state is not 'in-use'.

  Repro steps:

  1. Create a volume
  openstack volume create

  2. Create an instance
  openstack server create

  3. Attach the volume to the instance
  openstack server add volume

  4. Fake an error in the Cinder attachment delete API
  (I just raised an exception in cinder/api/v3/attachments.py)

  5. Try to detach the volume from the instance
  openstack server remove volume

  
  Expected result:

  Detach fails and the volume remains in 'in-use' status

  Actual result:

  Detach fails and the volume is stuck in 'detaching' status

  
  Nova calls the Cinder API to update the volume status to 'detaching' in compute/api but it does not call Cinder API to rollback the volume status from 'detaching' if the Cinder API attachment delete call returns an error.

  I think we just need to call the rollback detaching Cinder API in this
  case to resolve the issue.

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