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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp