)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cf49b7ca6d187e077d71ad45ae9263e6fc40caf2","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When two nova-scheduler workers simultaneously handle boot requests that"},{"line_number":10,"context_line":"together would exhaust a host\u0027s capacity, both receive the same stale"},{"line_number":11,"context_line":"GET /allocation_candidates snapshot and select the same host. The losing"},{"line_number":12,"context_line":"PUT /allocations returns 409 concurrent_update; claim_resources() retries"},{"line_number":13,"context_line":"the same stale alloc_req four times then returns False. _schedule() breaks"},{"line_number":14,"context_line":"out of the claim loop without re-querying Placement, yielding either a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bd9a474b_efec87bf","line":11,"updated":"2026-02-25 16:15:40.000000000","message":"that is not really accurate  both recivice a set of allcoation candiate for the  the curernt posible host but we do try to performa any inter schduelr synconisatio by design.\n\n\nyou are describing a feature that effectively requrie distribute login but we intentally didnt do that for scalability reasons.","commit_id":"af348fd62b4a70f5b54f310db92eef7bfda44215"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cf49b7ca6d187e077d71ad45ae9263e6fc40caf2","unresolved":true,"context_lines":[{"line_number":16,"context_line":"Placement deployment allows both PUTs through before either commits)."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Fix: after exhausting the stale candidate list, issue one additional"},{"line_number":19,"context_line":"GET /allocation_candidates to obtain a fresh Placement snapshot. If that"},{"line_number":20,"context_line":"snapshot has viable hosts, attempt a claim before raising NoValidHost."},{"line_number":21,"context_line":"The inner claim loop is extracted into a _find_host_in_candidates closure"},{"line_number":22,"context_line":"to avoid duplicating it for the re-query pass, matching the style of the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7fc114a6_75c56133","line":19,"updated":"2026-02-25 16:15:40.000000000","message":"we use to have retires in the conductor on built failure and intentioaly remove them using the alternitve host allction list.\n\ngetting a new allctiotion candiate is not enough you must also rerun the full set of filters and weighers agian which is expensive.","commit_id":"af348fd62b4a70f5b54f310db92eef7bfda44215"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cf49b7ca6d187e077d71ad45ae9263e6fc40caf2","unresolved":true,"context_lines":[{"line_number":22,"context_line":"to avoid duplicating it for the re-query pass, matching the style of the"},{"line_number":23,"context_line":"existing hosts_with_alloc_reqs closure."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Closes-Bug: #2142646"},{"line_number":26,"context_line":"Signed-off-by: Nope \u003cohnomyvms@gmail.com\u003e"},{"line_number":27,"context_line":"Change-Id: I1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fd44e133_764844e0","line":25,"updated":"2026-02-25 16:15:40.000000000","message":"this feels like a feature not a bug.\n\nwe do not guarantee concurrent scheduler request wont race with one failing with a no valid host\n\nwe actully built the system to work that way with the client retrying the request if needed.\n\nwe can improve thign but jsut alreay retryign is not somethign that will scale well.","commit_id":"af348fd62b4a70f5b54f310db92eef7bfda44215"},{"author":{"_account_id":38865,"name":"Nope","email":"ohnomyvms@gmail.com","username":"ohnomyvms"},"change_message_id":"6a5ef7d1430ffcb5eebe372f3c975ef0096583a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c97e05f9_17f89e92","in_reply_to":"fd44e133_764844e0","updated":"2026-03-05 03:58:58.000000000","message":"Agreed. PS6 reframes this and puts it behind a config flag.","commit_id":"38118dcd2f12a7c7e5028d5f80fa5fbfcc029ddc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cf49b7ca6d187e077d71ad45ae9263e6fc40caf2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a636595e_fc488809","updated":"2026-02-25 16:15:40.000000000","message":"this to me is a change that need more discussion and im not conviced it falls in the scope fo a bug. we need ot agree if it shoudl be impelemtned and how.\n\nfor example i think this is probaly something tha toperator woudl want to confgure and or have a tunable to limit as this could be quite costly on large clouds.\n\nopenstack does not garuentee prefect resouce usage and that it will gurantee that you find a host form all the possible host a vm could land on. we provide tuables to blance that rade off as it affect schdulign performance so this to me feels more like a feature needing a blueprint or a spec then a simple bugfix.","commit_id":"af348fd62b4a70f5b54f310db92eef7bfda44215"},{"author":{"_account_id":38865,"name":"Nope","email":"ohnomyvms@gmail.com","username":"ohnomyvms"},"change_message_id":"6a5ef7d1430ffcb5eebe372f3c975ef0096583a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fda9d591_59c6e498","in_reply_to":"a636595e_fc488809","updated":"2026-03-05 03:58:58.000000000","message":"Fair point. PS6 makes this opt-in via a new config option (default False). No behavior change unless the operator enables it.","commit_id":"38118dcd2f12a7c7e5028d5f80fa5fbfcc029ddc"}],"nova/scheduler/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cf49b7ca6d187e077d71ad45ae9263e6fc40caf2","unresolved":true,"context_lines":[{"line_number":492,"context_line":"            # providers, using the first allocation_request for each host."},{"line_number":493,"context_line":"            claimed_host, alloc_req \u003d _find_host_in_candidates(hosts)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"            if claimed_host is None:"},{"line_number":496,"context_line":"                # Re-query Placement for a fresh snapshot; concurrent"},{"line_number":497,"context_line":"                # schedulers may have claimed the top host between our"},{"line_number":498,"context_line":"                # GET /allocation_candidates and our PUT /allocations."}],"source_content_type":"text/x-python","patch_set":3,"id":"c6c648f9_12cbdaea","line":495,"updated":"2026-02-25 16:15:40.000000000","message":"even if we do this during milti create we are protially doign this once per instance which is kind of expensiv since we need ot re run the filters and weighers again to validate antif affintiy and the other requirement like numa affintiy ectra.\n\nto this is trunign one schdulign request into effectivly many loops through the process.","commit_id":"af348fd62b4a70f5b54f310db92eef7bfda44215"},{"author":{"_account_id":38865,"name":"Nope","email":"ohnomyvms@gmail.com","username":"ohnomyvms"},"change_message_id":"6a5ef7d1430ffcb5eebe372f3c975ef0096583a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b2cf9908_aca76b84","in_reply_to":"c6c648f9_12cbdaea","updated":"2026-03-05 03:58:58.000000000","message":"Now gated by CONF.scheduler.requery_placement_on_claim_failure (default False), so this cost is only incurred when the operator explicitly opts in.","commit_id":"38118dcd2f12a7c7e5028d5f80fa5fbfcc029ddc"}]}
