Volume of 'in-use' remain by a timeout during the attach
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Invalid
|
Undecided
|
Yasuaki Nagata | ||
OpenStack Compute (nova) |
In Progress
|
Low
|
Yasuaki Nagata |
Bug Description
Remain as the 'in-use' volume due to timeout during the 'attach'.
If the problem occurs, The instance can't detach/attach the volume.
detach -> volume_id not found
attach -> libvirtError: Requested operation is not valid: target vdb already exists
(other volume)
This problems are caused by the mismatching DB because c-vol does not rollback it when happend the timeout of RPC(CALL).
At first, c-vol takes time in the attaching process, and the attaching process failed in the c-api by timeout.
But in this time, the attaching process does not failed yet in the c-vol.
By this, BDM is deleted and volume is updated to in-use.
(If successful the attaching process in the c-vol.)
<Repro>
used master
cinder: commit d4b77484c5d41f2
nova : commit eaeecdaf4743463
1. attach volume
(in cinder/
note: I reproduced this problem by inserting sleep in this method.
2. RPC(CALL) timeout in the c-api(attach_volume process takes time beyond the rpc_response_
<About the volume and BDM >
block_device_
+------
| deleted_at | id | device_name | delete_
+------
| NULL | 1 | /dev/vda | 1 | NULL | NULL | 4683d4fb-
| 2015-03-17 06:12:36 | 2 | /dev/vdb | 0 | 46d1bfbb-
+------
volumes
+------
| deleted_at | deleted | id | status | attach_status | terminated_at | provider_location | provider_auth |
+------
| NULL | 0 | 46d1bfbb-
+------
Changed in cinder: | |
assignee: | nobody → Yasuaki Nagata (yasuaki-nagata) |
Changed in nova: | |
assignee: | nobody → Yasuaki Nagata (yasuaki-nagata) |
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → Low |
tags: | added: volumes |
Changed in cinder: | |
status: | In Progress → Invalid |
Fix proposed to branch: master /review. openstack. org/167183
Review: https:/