Trove Resize doesn't wait for instance to become ACTIVE on nova
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack DBaaS (Trove) |
Fix Released
|
Medium
|
Paul Marshall |
Bug Description
Trove after confirming the resize on nova, doesn't wait for the instance to become ACTIVE, and in certain cases, befor nova makes that instance ACTIVE, trove marks it as active in its database(as trove resize function finishes and even the guest agent has updated the status in the DB to be active/running). But since the status on nova is still VERIFY_RESIZE, some trove-apis like reboot, which involves a nova action, starts failing as the instance stats on nova is not ACTIVE.
The error received by the client :
{"unprocessable
This is hard to reproduce as it involves some behavior of nova, where it takes little longer to mark instance as ACTIVE after issuing resize-confirm.
The fix would be to wait for the instance to become ACTIVE in nova before sending the message to the guest agent.
summary: |
- Trove Resize doesn't wait for instance to become ACTIVE + Trove Resize doesn't wait for instance to become ACTIVE on nova |
Changed in trove: | |
assignee: | nobody → Paul Marshall (paulvmarshall) |
Changed in trove: | |
milestone: | none → icehouse-2 |
importance: | Undecided → Medium |
Changed in trove: | |
status: | Fix Committed → Fix Released |
Changed in trove: | |
milestone: | icehouse-2 → 2014.1 |
I guess:
1. Trove cast a resize request and will wait for instance becoming ACTIVE
2. Trove send a refresh instance status request
3. Nova reply instance status before handle reboot request, Trove will get instance status which is ACTIVE
4. Trove happily thinks resize action is finishied.
Maybe more logs can help verify the truth