)]}'
{"id":"openstack%2Fplacement~936658","triplet_id":"openstack%2Fplacement~master~I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6","project":"openstack/placement","branch":"master","topic":"bug/2070257","attention_set":{},"removed_from_attention_set":{"9708":{"account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"last_update":"2025-01-08 21:43:26.000000000","reason":"Change was submitted"},"4690":{"account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"last_update":"2024-12-12 03:45:50.000000000","reason":"\u003cGERRIT_ACCOUNT_4690\u003e replied on the change","reason_account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}}},"hashtags":[],"change_id":"I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6","subject":"Add a global limit on the number of allocation candidates","status":"MERGED","created":"2024-11-28 19:23:16.000000000","updated":"2025-01-08 21:44:30.000000000","submitted":"2025-01-08 21:43:26.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":17,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"936658-bug/2070257","meta_rev_id":"01be0ac11d8146d30fdb53b277a6d65cd9c9aa71","_number":936658,"virtual_id_number":936658,"owner":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-01-08 21:43:26.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":2,"date":"2025-01-08 19:22:54.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":2,"date":"2024-12-12 03:45:50.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":1,"date":"2025-01-08 19:56:53.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2024-11-28 20:40:57.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2024-12-06 15:33:38.000000000","updated_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"},{"updated":"2025-01-08 19:22:54.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"}],"messages":[{"id":"88a6d141c527fe4909b9034c7f17fbaa0be76feb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-11-28 19:23:16.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3c558a4176414f3c717bebe855fc5ecce7c5b173","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-11-28 19:34:37.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"ec5750aa2672255b91905973a097fc4eccee4f05","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-11-28 20:40:57.000000000","message":"Patch Set 1: Verified-1\n\n(5 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/49c52e10280d41e2ac9fddbc988a08a4\n\n- grenade https://zuul.opendev.org/t/openstack/build/b06b7546d7354e6d81b9e27f314ad3b2 : SUCCESS in 1h 07m 04s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b6105dc617514ce98e0885bf7febd3c5 : SUCCESS in 49m 11s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/376a829bcaeb40a496a31237e799fd83 : SUCCESS in 1h 15m 23s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/463c5c0b1cef4249b3dd2a52d6dbed1e : FAILURE in 1h 11m 44s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ab11e4fcb39946978b0b0070958716d7 : SUCCESS in 7m 46s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d7269bd8bda54461b8c6f6ad4990dba1 : FAILURE in 5m 24s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/f87704b435624085ab027e155d0cbab4 : SUCCESS in 5m 28s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/d919a74f4a0c410295a3d03ddd7d6fac : SUCCESS in 5m 40s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/132599e33ba2452389da3112343f6df0 : SUCCESS in 8m 17s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/9061368effe840e9b03b467567e1679d : SUCCESS in 6m 29s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/4ec120baacd54e3eb262b61d3470e0ed : SUCCESS in 8m 22s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/af38944dd19049379a8e90f59c6d7fbd : SUCCESS in 23m 39s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/35d3961e803c4f29838d305be4bd3eb1 : SUCCESS in 14m 46s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/5e8be1f0eb7a48898de70ba6c7a1242e : FAILURE in 3m 14s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/73063e1607a740db8fbe3f9cedb8d00c : SUCCESS in 1h 04m 03s","accounts_in_message":[],"_revision_number":1},{"id":"2b614a673da263496b07ea5f5f36547ba599949b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-03 13:03:15.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":2},{"id":"1249e1c4c4bd604c8bcf1cae20c28fa8d4cec98f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-12-03 14:17:40.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/07f925f60a8748d78bad6c058f330332\n\n- grenade https://zuul.opendev.org/t/openstack/build/ea1590d7f3604bdbb566ea4056a6f25e : SUCCESS in 1h 01m 16s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0668e1e748af40a0a9be645f314ab1d5 : SUCCESS in 57m 41s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/40e74379046b4c3bbe602d1b3996040b : SUCCESS in 1h 13m 02s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4267ced0b451419a94e8d474c53f87ce : SUCCESS in 1h 07m 28s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/326e80d2af52492ebd9c6aec76f805fd : SUCCESS in 11m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1d30e84f7df74d69840752a5a6d3fd16 : SUCCESS in 4m 44s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/721ccb7a33d1444783b82c61abfd2f33 : SUCCESS in 3m 27s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/127b430094a94829bee2abd31848322b : SUCCESS in 5m 22s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fe5a3d5954154f919fdc7f7bfad9e771 : SUCCESS in 6m 36s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/c5547868ccb24ef59f0810a5c7f6cddc : SUCCESS in 3m 55s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/e589d56dc2c1426086dde64a987aaeb6 : SUCCESS in 8m 35s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/10f5df61ff374e228365878a0861d48a : SUCCESS in 22m 52s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/c971180e89d549968e9e767fcd2351aa : SUCCESS in 8m 35s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/7e4c058566be45a6a9afe9538a5c498f : FAILURE in 3m 00s (non-voting)\n- tempest-integrated-placement-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/18f7fdade56f49e3a66eed40f1395e01 : SUCCESS in 1h 03m 54s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0d41e99e17ec4f49acf3ea39bcdfbf3c : SUCCESS in 38m 57s","accounts_in_message":[],"_revision_number":2},{"id":"c9572da26dd6b382c4b87fe495595dff76cf2502","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-06 15:23:34.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"32d075fed67641735534d4d2cdbcfaa7d8b51270","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-06 15:24:28.000000000","message":"Uploaded patch set 4: Commit message was updated.","accounts_in_message":[],"_revision_number":4},{"id":"5b944909b64767c59a9d87c3a9444d8bc79aca77","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-06 15:25:26.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"8ff89cb7316dc9c31301dff1e493c6d9b16662ca","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-06 15:29:54.000000000","message":"Patch Set 4:\n\n(3 comments)","accounts_in_message":[],"_revision_number":4},{"id":"df5e94746e5e1834f2b53b728d73da46f85b48e9","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-06 17:04:18.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"922b956821aab2f1c0401e54399a24012071ac70","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-12-06 17:22:54.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/828c683887f4481192d0cb3536ff70d7\n\n- grenade https://zuul.opendev.org/t/openstack/build/a4b9dcf75b9449e581aa206556937d62 : SUCCESS in 59m 21s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/e21754e2ee504dc4813e2f5fa0a45e10 : SUCCESS in 59m 12s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/b44c0c092463494f83499d165a3fdb6d : SUCCESS in 1h 47m 31s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/600bf9a339df4c23a2922338dc47d1c9 : SUCCESS in 1h 08m 48s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5015bb8bce134aeca0f15c0723a21601 : SUCCESS in 11m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/80956bad43474327b4666722190914ef : SUCCESS in 4m 32s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/5139f2a91f874940a0538ec9aae36918 : SUCCESS in 5m 47s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/a7221adfa7414d3e9c24d0a566596e64 : SUCCESS in 7m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dd804ffa388d4984bee6918bb4750f42 : SUCCESS in 7m 01s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/66ead0bbe41d4321b683d15a0bdca7fa : SUCCESS in 6m 17s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/879efe389800469994e843fe72803b06 : SUCCESS in 11m 15s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/c18bbf49098c4bf586b351f4cc768b52 : SUCCESS in 23m 11s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/c78ef32730a84f80a1b6ced090a2e497 : SUCCESS in 24m 08s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/85546c6ea67d4e0ca6f2b9bf3e3ce206 : FAILURE in 3m 06s (non-voting)\n- tempest-integrated-placement-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/2e51523de00046e9a343e283c6a883f4 : SUCCESS in 1h 35m 49s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/370cf372f5ed4f78838fb02b9ce68219 : SUCCESS in 35m 09s","accounts_in_message":[],"_revision_number":4},{"id":"28b20bad146e5346e3c70640363b2deffa43c577","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-09 13:40:38.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":5},{"id":"3016c3440dcdfb32d5cb3fc2436189e06c2faa53","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-09 13:41:02.000000000","message":"Patch Set 5:\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"33b7ec95822ac9134c3c7654022ddcf585b5df73","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-12-09 16:16:25.000000000","message":"Patch Set 5: Verified-1\n\n(1 comment)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f00592d1f99a4809b2a073e6276bbf45\n\n- grenade https://zuul.opendev.org/t/openstack/build/794da9c0e7c74caaad6519e3b283ba11 : SUCCESS in 58m 37s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/125051bd5f1e4a3683b98b5e2025c6b7 : SUCCESS in 34m 23s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/9281556155e94b2d888a635ea45660a4 : SUCCESS in 1h 43m 52s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/469743179fab4713844d711d4e8de4cf : SUCCESS in 1h 02m 18s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/c2173622eb2743369c461d3fedc9a0db : SUCCESS in 16m 40s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e0aeafd7d2a8420695f21fcf18e705f9 : FAILURE in 6m 57s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/298242e97b0245159b6562203f55fcdf : SUCCESS in 6m 10s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/a3b3ce5c54284018ae9b48e79213086d : SUCCESS in 5m 40s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9348efe806924484ae732463935d7241 : SUCCESS in 7m 06s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/fc5bfba06716468aad298747ed5f28d2 : SUCCESS in 5m 51s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/ef794aa58a6443b49044c47ec38dbd26 : SUCCESS in 9m 45s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/8c8827b06bdc4e468ebba3d20f25c2f9 : SUCCESS in 28m 34s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/f6835664534e49a9bbf62920b02254f0 : SUCCESS in 19m 37s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/4ed661e0f31e4848b958fca016257dc1 : FAILURE in 3m 25s (non-voting)\n- tempest-integrated-placement-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/5906bc255e44467bb51c504663f88d47 : TIMED_OUT in 2h 04m 03s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/7ec0ba4a971e45ee8235467d204f6108 : SUCCESS in 1h 01m 19s","accounts_in_message":[],"_revision_number":5},{"id":"7cf914b812e68a8e40d4ee93b2d8c3271291e11a","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2024-12-09 23:31:39.000000000","message":"Patch Set 5: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"f3f3328707ed8a462102437b8d7912a347d43fd6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-11 12:38:19.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":6},{"id":"a7ea7b0eeb9ca61a24389d5b57882824ce116035","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2024-12-11 12:38:23.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"b8460a3d1152cf0103751500e2318f636d40f456","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2024-12-11 14:14:30.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8788354f29a344a2a0d675177ea93702\n\n- grenade https://zuul.opendev.org/t/openstack/build/39e7ea672fa74972840a45945287e095 : SUCCESS in 1h 09m 59s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/94f7c1e33aa84cf19dfcbda4aefede08 : SUCCESS in 59m 15s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/30e4326d17d644968e759316b6afdd58 : SUCCESS in 1h 35m 29s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a16383a71de94f4f9fe1f2cefdfc07a4 : SUCCESS in 1h 12m 57s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/11c1953a02834046b51941d0fb116d06 : SUCCESS in 15m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/88f795c575a44415ba3c84370676769c : SUCCESS in 5m 15s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/f30d3a6adc3f4f4a83c09fd7603fb296 : SUCCESS in 5m 44s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/56a107d48af64432b2ba875647140220 : SUCCESS in 6m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3a45feef1e454878960ae8c2901a66af : SUCCESS in 8m 10s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/116761063c924cbc93723db9fe1b6970 : SUCCESS in 7m 23s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/a96700f81d464000b8c663839c6bf9a9 : SUCCESS in 9m 08s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/174400a25ecf4612939baf59a7d41e25 : SUCCESS in 24m 42s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/6715c05f14104137b50e0b3ea1ce30a4 : SUCCESS in 18m 46s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/609f3da734cd44329d16f761ae240635 : FAILURE in 3m 46s (non-voting)\n- tempest-integrated-placement-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/8b5e22e5fcc545058cfa19afdf9e57b1 : SUCCESS in 1h 30m 35s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/59dd888c6faf4423b78f49f680145f25 : SUCCESS in 1h 06m 00s","accounts_in_message":[],"_revision_number":6},{"id":"adf4cae1e86c3ad7540a4a084cb53a1478cef350","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2024-12-12 03:45:50.000000000","message":"Patch Set 6: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"5aeed61c55dc57d133e54efff7dd44d74d2af54b","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-01-08 19:22:54.000000000","message":"Patch Set 6: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"a35959fb12bfbb6f9d02ca90fc9a329fc9209777","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-01-08 19:56:53.000000000","message":"Patch Set 6: Workflow+1","accounts_in_message":[],"_revision_number":6},{"id":"805d52b4d17b4018faf173d72929d77fae1769a7","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-01-08 19:57:31.000000000","message":"Patch Set 6: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":6},{"id":"c7fc7fc461db6c3acc18b57ec49eb8b7343a377f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-01-08 21:43:26.000000000","message":"Patch Set 6: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/561066d9c0314a0b816bae364b1fd2cc\n\n- grenade https://zuul.opendev.org/t/openstack/build/92b76e12ef9f4d3c92b842228c23e00c : SUCCESS in 1h 06m 29s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/cadd23dab22d47839da18222a227d199 : SUCCESS in 1h 40m 49s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3e6750f92c0a45c2bc91c940454e8d3a : SUCCESS in 1h 04m 55s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3755aae267b440a08efc26c2bcdd60cf : SUCCESS in 1h 05m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/38b7a748546a49909d1f64ccd93315e2 : SUCCESS in 4m 47s\n- openstack-tox-py39 https://zuul.opendev.org/t/openstack/build/e2ce41429eb943f4b73fdf861f738f7f : SUCCESS in 4m 42s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/3c268d37de224d42b1d318da19eaa23a : SUCCESS in 5m 31s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fb61ea2883fc487ebbf213fed6b8a2da : SUCCESS in 6m 06s\n- openstack-tox-functional-py39 https://zuul.opendev.org/t/openstack/build/0b49f9b0ad31408d946b963e9e68ed37 : SUCCESS in 4m 24s\n- openstack-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/678fdbf4ea044634827952f0d8b7907c : SUCCESS in 7m 33s\n- placement-nova-tox-functional-py312 https://zuul.opendev.org/t/openstack/build/a1241d35f7524f16908c067da2bdda17 : SUCCESS in 26m 16s\n- tempest-integrated-placement-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/3517708bef5d4f6799c78c42bd75e57a : SUCCESS in 1h 37m 23s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9ca530a7955c464483ad64f57c4b4033 : SUCCESS in 57m 52s","accounts_in_message":[],"_revision_number":6},{"id":"bf744585c0d52873013739a6b0898d6ee8b91e92","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-01-08 21:43:26.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":6},{"id":"01be0ac11d8146d30fdb53b277a6d65cd9c9aa71","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-01-08 21:44:30.000000000","message":"Patch Set 6:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/abd2904a5a9f499785d3b69e40cf794d\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1ab27a01b48149409a4dd07f16c0742a : SUCCESS in 44s","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"9351241f91f80cb7dc45c4c0daab929b5dfc5c4b","revisions":{"e89dda1fcaf27f86c41441db28c8e5e4f5be83d3":{"kind":"REWORK","_number":1,"created":"2024-11-28 19:23:16.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/58/936658/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/58/936658/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/58/936658/1"}}},"commit":{"parents":[{"commit":"7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662","subject":"Merge \"Drop db migration tool\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-11-28 19:21:24.000000000","tz":60},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-11-28 19:21:24.000000000","tz":60},"subject":"WIP: Test mitigations for candidate explosion","message":"WIP: Test mitigations for candidate explosion\n\nThe simplest mitigation is just adding a global 100k candidate limit to\nthe code (can be made configurable). This only solves the request\ntimeout issue, but introduce an heavy unbalance on the generated\ncandidates.\n\nRelated-Bug: #2089061\nChange-Id: I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/e89dda1fcaf27f86c41441db28c8e5e4f5be83d3"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/e89dda1fcaf27f86c41441db28c8e5e4f5be83d3"}]},"branch":"refs/heads/master"},"5a64025e43172ab4beeac849128a1cbac144dd32":{"kind":"REWORK","_number":2,"created":"2024-12-03 13:03:15.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/58/936658/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/58/936658/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/58/936658/2"}}},"commit":{"parents":[{"commit":"7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662","subject":"Merge \"Drop db migration tool\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-11-28 19:21:24.000000000","tz":60},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-12-03 12:54:02.000000000","tz":0},"subject":"WIP: Test mitigations for candidate explosion","message":"WIP: Test mitigations for candidate explosion\n\nThe simplest mitigation is just adding a global 100k candidate limit to\nthe code (can be made configurable). This only solves the request\ntimeout issue, but introduce an heavy unbalance on the generated\ncandidates.\n\nRelated-Bug: #2089061\nChange-Id: I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/5a64025e43172ab4beeac849128a1cbac144dd32"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/5a64025e43172ab4beeac849128a1cbac144dd32"}]},"branch":"refs/heads/master"},"0caf5aff97c1e498ad7ab23f604fa665798a95cf":{"kind":"REWORK","_number":3,"created":"2024-12-06 15:23:34.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/58/936658/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/58/936658/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/58/936658/3"}}},"commit":{"parents":[{"commit":"7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662","subject":"Merge \"Drop db migration tool\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-11-28 19:21:24.000000000","tz":60},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-12-06 15:09:17.000000000","tz":60},"subject":"Add a global limit on the number of allocation candidates","message":"Add a global limit on the number of allocation candidates\n\nWhen a root provider has multiple similar child RPs, i.e. we have a wide\nbut symmetric tree, and the allocation\ncandidate request asks for resources in multiple request groups the\nnumber of possible allocation candidates grows rapidly.\n\n* 1 root, 8 child RPs with 1 unit of resource each\n  a_c requests 6 groups with 1 unit of resource each\n  \u003d\u003e 8*7*6*5*4*3\u003d20160 possible candidates\n\n* 1 root, 8 child RPs with 6 unit of resources each\n  a_c requests 6 groups with 6 unit of resources each\n  \u003d\u003e 8^6\u003d262144 possible candidates\n\nPlacement generates these candidates fully before applying the limit\nparameter provided in the query to be able do a random sampling if\n[placement]randomize_allocation_candidates is True.\n\nPlacement takes excessive time and memory to generates these amount of\nallocation candidates.\n\nTo avoid request timeout or out of memory events this patch introduces a\nnew [placement]max_allocation_candidates config option that is applied\nnot after but *during* the candidate generation loop. So this new option\nacts as a global safety limit.\n\nThe new config option is defaulted to -1, meaning no limit, to keep the\nlegacy behavior, but we suggest to tune that config in environments with\nwide symmetric trees.\n\nPlacement generates the candidates with a depth first approach,\ngathering all candidates for a root before moving to the next root. If\nthe new global limit is applied and hit then it is possible that the\nreturned candidates are from a limited set of root providers. This issue\nwill be handled by a subsequent patch allowing to select from\ndepth-first or breadth-first (round-robin) candidate generation\nstrategy.\n\nRelated-Bug: #2089061\nChange-Id: I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/0caf5aff97c1e498ad7ab23f604fa665798a95cf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/0caf5aff97c1e498ad7ab23f604fa665798a95cf"}]},"branch":"refs/heads/master"},"8589498abb9090713185af6dcdc8c84ad29ef774":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2024-12-06 15:24:28.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/58/936658/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/58/936658/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/58/936658/4"}}},"commit":{"parents":[{"commit":"7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662","subject":"Merge \"Drop db migration tool\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-11-28 19:21:24.000000000","tz":60},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-12-06 15:24:06.000000000","tz":60},"subject":"Add a global limit on the number of allocation candidates","message":"Add a global limit on the number of allocation candidates\n\nWhen a root provider has multiple similar child RPs, i.e. we have a wide\nbut symmetric tree, and the allocation\ncandidate request asks for resources in multiple request groups the\nnumber of possible allocation candidates grows rapidly.\n\n* 1 root, 8 child RPs with 1 unit of resource each\n  a_c requests 6 groups with 1 unit of resource each\n  \u003d\u003e 8*7*6*5*4*3\u003d20160 possible candidates\n\n* 1 root, 8 child RPs with 6 unit of resources each\n  a_c requests 6 groups with 6 unit of resources each\n  \u003d\u003e 8^6\u003d262144 possible candidates\n\nPlacement generates these candidates fully before applying the limit\nparameter provided in the query to be able do a random sampling if\n[placement]randomize_allocation_candidates is True.\n\nPlacement takes excessive time and memory to generates these amount of\nallocation candidates.\n\nTo avoid request timeout or out of memory events this patch introduces a\nnew [placement]max_allocation_candidates config option that is applied\nnot after but *during* the candidate generation loop. So this new option\nacts as a global safety limit.\n\nThe new config option is defaulted to -1, meaning no limit, to keep the\nlegacy behavior, but we suggest to tune that config in environments with\nwide symmetric trees.\n\nPlacement generates the candidates with a depth first approach,\ngathering all candidates for a root before moving to the next root. If\nthe new global limit is applied and hit then it is possible that the\nreturned candidates are from a limited set of root providers. This issue\nwill be handled by a subsequent patch allowing to select from\ndepth-first or breadth-first (round-robin) candidate generation\nstrategy.\n\nRelated-Bug: #2070257\nChange-Id: I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/8589498abb9090713185af6dcdc8c84ad29ef774"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/8589498abb9090713185af6dcdc8c84ad29ef774"}]},"branch":"refs/heads/master"},"e0a35f2b9ae1f0349a4fb9d9f8d78144f74db9ee":{"kind":"REWORK","_number":5,"created":"2024-12-09 13:40:38.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/58/936658/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/58/936658/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/58/936658/5"}}},"commit":{"parents":[{"commit":"7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662","subject":"Merge \"Drop db migration tool\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-11-28 19:21:24.000000000","tz":60},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-12-09 12:59:40.000000000","tz":60},"subject":"Add a global limit on the number of allocation candidates","message":"Add a global limit on the number of allocation candidates\n\nWhen a root provider has multiple similar child RPs, i.e. we have a wide\nbut symmetric tree, and the allocation\ncandidate request asks for resources in multiple request groups the\nnumber of possible allocation candidates grows rapidly.\n\n* 1 root, 8 child RPs with 1 unit of resource each\n  a_c requests 6 groups with 1 unit of resource each\n  \u003d\u003e 8*7*6*5*4*3\u003d20160 possible candidates\n\n* 1 root, 8 child RPs with 6 unit of resources each\n  a_c requests 6 groups with 6 unit of resources each\n  \u003d\u003e 8^6\u003d262144 possible candidates\n\nPlacement generates these candidates fully before applying the limit\nparameter provided in the query to be able do a random sampling if\n[placement]randomize_allocation_candidates is True.\n\nPlacement takes excessive time and memory to generates these amount of\nallocation candidates.\n\nTo avoid request timeout or out of memory events this patch introduces a\nnew [placement]max_allocation_candidates config option that is applied\nnot after but *during* the candidate generation loop. So this new option\nacts as a global safety limit.\n\nThe new config option is defaulted to -1, meaning no limit, to keep the\nlegacy behavior, but we suggest to tune that config in environments with\nwide symmetric trees.\n\nPlacement generates the candidates with a depth first approach,\ngathering all candidates for a root before moving to the next root. If\nthe new global limit is applied and hit then it is possible that the\nreturned candidates are from a limited set of root providers. This issue\nwill be handled by a subsequent patch allowing to select from\ndepth-first or breadth-first (round-robin) candidate generation\nstrategy.\n\nRelated-Bug: #2070257\nChange-Id: I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/e0a35f2b9ae1f0349a4fb9d9f8d78144f74db9ee"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/e0a35f2b9ae1f0349a4fb9d9f8d78144f74db9ee"}]},"branch":"refs/heads/master"},"9351241f91f80cb7dc45c4c0daab929b5dfc5c4b":{"kind":"REWORK","_number":6,"created":"2024-12-11 12:38:19.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/58/936658/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/58/936658/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/58/936658/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/58/936658/6"}}},"commit":{"parents":[{"commit":"7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662","subject":"Merge \"Drop db migration tool\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/7dfcca6d3d45a2d0667abc6d9f6d2992a3d83662"}]}],"author":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-11-28 19:21:24.000000000","tz":60},"committer":{"name":"Balazs Gibizer","email":"gibi@redhat.com","date":"2024-12-11 12:26:12.000000000","tz":60},"subject":"Add a global limit on the number of allocation candidates","message":"Add a global limit on the number of allocation candidates\n\nWhen a root provider has multiple similar child RPs, i.e. we have a wide\nbut symmetric tree, and the allocation\ncandidate request asks for resources in multiple request groups the\nnumber of possible allocation candidates grows rapidly.\n\n* 1 root, 8 child RPs with 1 unit of resource each\n  a_c requests 6 groups with 1 unit of resource each\n  \u003d\u003e 8*7*6*5*4*3\u003d20160 possible candidates\n\n* 1 root, 8 child RPs with 6 unit of resources each\n  a_c requests 6 groups with 6 unit of resources each\n  \u003d\u003e 8^6\u003d262144 possible candidates\n\nPlacement generates these candidates fully before applying the limit\nparameter provided in the query to be able do a random sampling if\n[placement]randomize_allocation_candidates is True.\n\nPlacement takes excessive time and memory to generates these amount of\nallocation candidates.\n\nTo avoid request timeout or out of memory events this patch introduces a\nnew [placement]max_allocation_candidates config option that is applied\nnot after but *during* the candidate generation loop. So this new option\nacts as a global safety limit.\n\nThe new config option is defaulted to -1, meaning no limit, to keep the\nlegacy behavior, but we suggest to tune that config in environments with\nwide symmetric trees.\n\nPlacement generates the candidates with a depth first approach,\ngathering all candidates for a root before moving to the next root. If\nthe new global limit is applied and hit then it is possible that the\nreturned candidates are from a limited set of root providers. This issue\nwill be handled by a subsequent patch allowing to select from\ndepth-first or breadth-first (round-robin) candidate generation\nstrategy.\n\nRelated-Bug: #2070257\nChange-Id: I5475c66fa35958b3dc72c3bab7a7edbdf6c89ce6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/9351241f91f80cb7dc45c4c0daab929b5dfc5c4b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/9351241f91f80cb7dc45c4c0daab929b5dfc5c4b"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
