← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1373478] [NEW] filter scheduler makes invalid assumption of monotonicity

 

Public bug reported:

The current filter scheduler handles the scheduling of a homogenous
batch of N instances with a loop that assumes that a host ruled out in
one iteration can not be desirable in a later iteration --- but that is
a false assumption.

Consider the case of a filter whose purpose is to achieve balance across
some sort of areas.  These might be AZs, host aggregates, racks,
whatever.  Consider a request to schedule 4 identical instances; suppose
that there are two hosts, one in each of two different areas, initially
hosting nothing.  For the first iteration, both hosts pass this filter.
One gets picked, call it host A.  On the second iteration, only the
other host (call it B) passes the filter.  So the second instance goes
on B.  On the third iteration, both hosts would pass the filter but the
filter is only asked about host B.  So the third instance goes on B.  On
the fourth iteration, host B is unacceptable but that is the only host
about which the filter is asked.  So the scheduling fails with a
complaint about no acceptable host found.

** 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/1373478

Title:
  filter scheduler makes invalid assumption of monotonicity

Status in OpenStack Compute (Nova):
  New

Bug description:
  The current filter scheduler handles the scheduling of a homogenous
  batch of N instances with a loop that assumes that a host ruled out in
  one iteration can not be desirable in a later iteration --- but that
  is a false assumption.

  Consider the case of a filter whose purpose is to achieve balance
  across some sort of areas.  These might be AZs, host aggregates,
  racks, whatever.  Consider a request to schedule 4 identical
  instances; suppose that there are two hosts, one in each of two
  different areas, initially hosting nothing.  For the first iteration,
  both hosts pass this filter.  One gets picked, call it host A.  On the
  second iteration, only the other host (call it B) passes the filter.
  So the second instance goes on B.  On the third iteration, both hosts
  would pass the filter but the filter is only asked about host B.  So
  the third instance goes on B.  On the fourth iteration, host B is
  unacceptable but that is the only host about which the filter is
  asked.  So the scheduling fails with a complaint about no acceptable
  host found.

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


Follow ups

References