Missing LVM LV makes cinder-volume fail to initialize
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
Medium
|
Florian Haas |
Bug Description
Steps to reproduce (in LVM/tgt configuration)
1. Create volume ("cinder create")
2. Stop cinder-volume service.
3. Stop tgtd (to release open handles on LVM LVs)
4. Delete LV with lvremove
5. Start tgtd
6. Start cinder-volume service
Expected behavior:
Affected volume goes to error state, other volumes become normally available
Actual behavior:
cinder-volume service fails to initialize after VolumeManager bails out of init_host() before hitting set_initialized().
Error message:
"Error encountered during re-exporting phase of driver initialization:", followed by driver stack trace.
This leaves the affected volume in the "available" state, which is clearly a rather poor reflection of reality. Also, since the volume service is now uninitialized, the volume can't be deleted, and gets stuck in the error_deleting status until (a) an admin resets the volume state and recreates the LV manually, or (b) the deleted flag is set for the volume in in the volumes table in the database.
Changed in cinder: | |
milestone: | none → icehouse-3 |
status: | Fix Committed → Fix Released |
Changed in cinder: | |
milestone: | icehouse-3 → 2014.1 |
I took a stab at what *might* be a possible resolution to this issue in https:/ /review. openstack. org/#/c/ 67966/. Probably by no means complete -- grateful for any reviews.