Volume transition from attaching -> attached is lost, leading to unattached and undettachable volume
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
High
|
Unassigned | ||
OpenStack Compute (nova) |
Fix Released
|
High
|
Unassigned |
Bug Description
Not super common, but this caused at least two failures in merges today.
From console.html:
2013-11-26 04:33:12.467 | =======
2013-11-26 04:33:12.467 | FAIL: tearDownClass (tempest.
2013-11-26 04:33:12.467 | tearDownClass (tempest.
2013-11-26 04:33:12.467 | -------
2013-11-26 04:33:12.467 | _StringException: Traceback (most recent call last):
2013-11-26 04:33:12.468 | File "tempest/
2013-11-26 04:33:12.468 | client.
2013-11-26 04:33:12.468 | File "tempest/
2013-11-26 04:33:12.468 | return self.delete(
2013-11-26 04:33:12.468 | File "tempest/
2013-11-26 04:33:12.469 | return self.request(
2013-11-26 04:33:12.469 | File "tempest/
2013-11-26 04:33:12.469 | resp, resp_body)
2013-11-26 04:33:12.469 | File "tempest/
2013-11-26 04:33:12.469 | raise exceptions.
2013-11-26 04:33:12.469 | BadRequest: Bad request
2013-11-26 04:33:12.470 | Details: {u'badRequest': {u'message': u'Invalid input received: Invalid volume: Volume status must be available or error, but current status is: attaching', u'code': 400}}
2013-11-26 04:33:12.470 |
2013-11-26 04:33:12.470 |
Unfortunately I can't find more in the cinder logs because tempest doesn't log the volume id.
summary: |
- Tempest failure due to volume attach being slow + Volume transition from attaching -> attached is lost, leading to + unattached and undettachable volume |
Changed in cinder: | |
status: | Confirmed → Fix Committed |
Changed in cinder: | |
milestone: | none → juno-3 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | none → juno-3 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | juno-3 → 2014.2 |
Changed in cinder: | |
milestone: | juno-3 → 2014.2 |
Volume attach is actually a compute task. On the Cinder side we simply wait for Nova to make it's request and update the status in the DB. I'll dig in but I suspect we need to look at compute on this.