quotas not updated when periodic tasks or startup finish deletes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Dmitry Stepanenko | ||
Juno |
Fix Released
|
Undecided
|
Unassigned | ||
Kilo |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
There are a couple of cases in the compute manager where we don't pass reservations to _delete_instance(). For example, one of them is cleaning up when we see a delete that is stuck in DELETING.
The only place we ever update quotas as part of delete should be when the instance DB record is removed. If something is stuck in DELETING, it means that the quota was not updated. We should make sure we're always updating the quota when the instance DB record is removed.
Soft delete kinda throws a wrench in this, though, because I think you want soft deleted instances to not count against quotas -- yet their DB records will still exist. In this case, it seems we may have a race condition in _delete_instance() -> _complete_
description: | updated |
description: | updated |
tags: | added: compute |
Changed in nova: | |
importance: | Undecided → High |
status: | New → Confirmed |
Changed in nova: | |
assignee: | nobody → jichenjc (jichenjc) |
Changed in nova: | |
assignee: | nobody → Rajesh Tailor (rajesh-tailor) |
tags: | added: quotas |
tags: | added: juno-backport-potential |
Changed in nova: | |
status: | Confirmed → In Progress |
Changed in nova: | |
milestone: | kilo-3 → kilo-rc1 |
tags: |
added: kilo-backport-potential removed: juno-backport-potential |
Changed in nova: | |
milestone: | none → liberty-1 |
tags: | removed: kilo-rc-potential |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
assignee: | Rajesh Tailor (rajesh-tailor) → nobody |
status: | In Progress → Confirmed |
Changed in nova: | |
assignee: | nobody → Dmitry Stepanenko (dstepanenko) |
tags: | removed: kilo-backport-potential |
I went through the code and I think the scenario pointed out is the only routine that we need to take care
the others seems already handled (include soft delete)