yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #11731
[Bug 1293756] [NEW] Compute manager calls DB directly
Public bug reported:
During the course of a resize operation if the compute manager's
_poll_unconfirmed_resizes() is used to automatically confirm the resize,
the code path eventually tries to access the DB without going through
Conductor.
The code path is something like this:
def _poll_unconfirmed_resizes(self, context):
calls:
self.compute_api.confirm_resize(context, instance,
migration=migration)
confirm_resize contains:
# reserve quota only for any decrease in resource usage
deltas = self._downsize_quota_delta(context, instance)
reservations = self._reserve_quota_delta(context, deltas)
so eventually calls:
def _reserve_quota_delta(context, deltas, project_id=None):
if not deltas:
return
return QUOTAS.reserve(context, project_id=project_id, **deltas)
quota.reserve calls the db directly:
# Get the applicable quotas.
# NOTE(Vek): We're not worried about races at this point.
# Yes, the admin may be in the process of reducing
# quotas, but that's a pretty rare thing.
project_quotas = db.quota_get_all_by_project(context, project_id)
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1293756
Title:
Compute manager calls DB directly
Status in OpenStack Compute (Nova):
New
Bug description:
During the course of a resize operation if the compute manager's
_poll_unconfirmed_resizes() is used to automatically confirm the
resize, the code path eventually tries to access the DB without going
through Conductor.
The code path is something like this:
def _poll_unconfirmed_resizes(self, context):
calls:
self.compute_api.confirm_resize(context, instance,
migration=migration)
confirm_resize contains:
# reserve quota only for any decrease in resource usage
deltas = self._downsize_quota_delta(context, instance)
reservations = self._reserve_quota_delta(context, deltas)
so eventually calls:
def _reserve_quota_delta(context, deltas, project_id=None):
if not deltas:
return
return QUOTAS.reserve(context, project_id=project_id, **deltas)
quota.reserve calls the db directly:
# Get the applicable quotas.
# NOTE(Vek): We're not worried about races at this point.
# Yes, the admin may be in the process of reducing
# quotas, but that's a pretty rare thing.
project_quotas = db.quota_get_all_by_project(context, project_id)
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1293756/+subscriptions
Follow ups
References