← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1194900] Re: scheduler only sees compute resources freed on periodic updates

 

** Changed in: nova
       Status: Fix Committed => Fix Released

** Changed in: nova
    Milestone: None => havana-2

-- 
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/1194900

Title:
  scheduler only sees compute resources freed on periodic updates

Status in OpenStack Compute (Nova):
  Fix Released

Bug description:
  When individual instances are updated (e.g., during spawn and
  terminate), ResourceTracker (in nova.compute.resource_tracker)  calls
  compute_node_update with values=self.compute_node. Since
  self.compute_node is an instance of ComputeNode that was retrieved
  from the database, it has updated_at set. Since updated_at is in
  values, sqlalchemy doesn't automatically change the record's
  updated_at column (see
  nova.openstack.common.db.sqlalchemy.models.TimestampMixin). Moreover,
  since updated_at is set to the last value's updated_at, updated_at
  effectively doesn't change until values without updated_at are sent,
  which only happens during the periodic task that calls
  ResourceTracker.update_available_resources.

  Nova-scheduler relies on ComputeNode.updated_at to keep its model of
  available resources up-to-date. In particular, nova-scheduler doesn't
  play a role in instance termination, so it doesn't account for freed
  resources until ComputeNode.updated_at changes. Thus, between nova
  compute's periodic calls to
  ResourceTracker.update_available_resources, nova-scheduler's model of
  available resources monotonically decreases. If, for example, a node
  has resources for 10 instances, and you manage to boot 10, terminate
  10, then attempt to boot another before the end of the period, nova-
  scheduler won't schedule the new instance on the vacant node.

  Note that f398b9e195cda582bad57396b097dec274384c07 fixed a separate
  issue (bug #1153778) related to ComputeNode.update_at being stale.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1194900/+subscriptions