manager should loop on driver init failure
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
In the case where volume driver init fails in c-vol or c-bak (e.g. when the driver gets an error doing a test login to the array) the manager currently logs an error then continued. The init is never retried, leaving behind a process that can't do any useful work, but logs 'driver not initialized' for every request, obscuring the cause of the problem from the operator - we've had plenty of confused support requests on the channel where the operator has found the 'not initialized' message but did not take the (not entirely intuitive) step of reading back through the log to find the cause of the error.
I propose that if the driver fails in initialize, then the manager should not continue, but rather log the error, sleep for a while, then retry - there is no useful work it can be doing anyway, and this makes the logs much clearer. It also means that if the problem in initialize is transient, e.g. during power up when c-vol comes up before the array has finished booting, then the system will recover automatically.
Changed in cinder: | |
importance: | Undecided → Wishlist |
tags: | added: bugsmash |
I agree with your proposal, this is something we should be doing.