)]}'
{"id":"openstack%2Fnova~980679","triplet_id":"openstack%2Fnova~master~I36163947a09b82cfc40ab4b522d82ffb503a0b84","project":"openstack/nova","branch":"master","topic":"startup-time","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-07-20 23:52:17.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I36163947a09b82cfc40ab4b522d82ffb503a0b84","subject":"Parallelize per-node resource updates","status":"NEW","created":"2026-03-16 10:37:08.000000000","updated":"2026-07-21 00:02:36.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":8,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"7ad2cc2fc700eb318ba45d24791c80f0619c0329","_number":980679,"virtual_id_number":980679,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-07-20 23:52:06.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]}],"REVIEWER":[{"_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":"2026-03-16 11:17:58.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-03-16 11:19:21.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":"CC"},{"updated":"2026-03-16 13:06:11.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":"2026-07-06 15:45:29.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"},{"updated":"2026-07-15 21:47:45.000000000","updated_by":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"reviewer":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"state":"CC"}],"messages":[{"id":"000f6fabd4fe17083613141b86143ec9c0d114a4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-16 10:37:08.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"bd0bfcd1e4035dbd917a0dd0b622241ad103ef57","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-03-16 11:17:58.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I36163947a09b82cfc40ab4b522d82ffb503a0b84 .","accounts_in_message":[],"_revision_number":1},{"id":"87b1138a14d3eec81c47d9e9373fa171b453667e","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-16 11:19:21.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6911586fbc5243fca6d7f72287ae9ea8\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/32bc8e96daf24fe29edf96c76f456090 : FAILURE in 14m 26s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/21bdfdfc9ef44689afedc7b700d80676 : FAILURE in 15m 52s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/87f336d45d564529b8af9b60940b0171 : FAILURE in 12m 15s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"964c0fced99960cec81aba5005709db4bdd7a5c9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-16 13:06:11.000000000","message":"Patch Set 1: Verified-1\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/baa5184c4a3742419e01bfe303909c37\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/8327ce5a195246e3aa2e62e0b755a1cd : SUCCESS in 29m 20s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/e555266f44ea49d8b1c64301fc7638f9 : SUCCESS in 1h 59m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/dc45782816e94ff4abb11fc5f196977c : SUCCESS in 1h 04m 28s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3fabc72762724a1aa762fd2405498b10 : FAILURE in 37m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4eaf1e889d0e420cabd117e48cea0501 : SUCCESS in 8m 15s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/1c528d1085ac4ef8a8041627b431ccd3 : FAILURE in 19m 43s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/092a8c1fd27b4ac0a0be76f002820c02 : FAILURE in 13m 51s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7fbc37148efa471c8cf135be8a38959d : FAILURE in 11m 48s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0c9234f7dc3541f681aa3fe17fc542c4 : SUCCESS in 12m 43s\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/3b36c69619a04b9abb6fc88b03efbdb9 : SUCCESS in 1h 55m 01s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/2a6aae1a216543d980fdfb1412e52265 : SUCCESS in 59m 20s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/2b7bffcf78914dc4b4fed5f7de7ff0cd : SUCCESS in 1h 04m 14s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/1929b1b67a1d40b68757202853c5c1e9 : SUCCESS in 28m 36s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/73384d54081544319bc7044f261ba6df : SUCCESS in 1h 26m 59s\n- nova-next https://zuul.opendev.org/t/openstack/build/4270eb171d184e36bdb937f8e939a172 : SUCCESS in 2h 15m 04s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/a5caaf54334c405eab779be7ad925d22 : SUCCESS in 54m 19s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/c1148faa7b2345af941238c52fa6b422 : SUCCESS in 4m 04s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/9551c799a39e4ec3a647f67dd873df2b : SUCCESS in 26m 30s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/6e701e7f98674e8eab8946f3eff71f7f : SUCCESS in 29m 15s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/60940e8e808b4d8b89bbed9ad26777eb : SUCCESS in 1h 28m 28s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/694a3ea8faa34afaac225cb1bc618e3f : SUCCESS in 1h 00m 08s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/4fdae8b223c449b4be22f8c4aeb3a07e : SUCCESS in 29m 02s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/afa6b7ed845142cc89e4e107699963bd : SUCCESS in 35m 57s (non-voting)\n- nova-tox-py312-threading https://zuul.opendev.org/t/openstack/build/18a6a112e95c401e8a665f6a31738e89 : FAILURE in 15m 49s","accounts_in_message":[],"_revision_number":1},{"id":"bc91f18f1d72a729905be31b1bd5deec59fa95db","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-23 17:58:03.000000000","message":"Patch Set 1: Workflow-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"aee9a5adf81676dfdf2b6a8d0ffc84bc1da61777","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-06 09:32:43.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"74bac31fac8b3943da6947eb2361a16548cbff89","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-07-06 10:44:05.000000000","message":"Patch Set 2:\n\nBuild Failed \n\n* quobyteci:  nova_quobyteci : FAILURE, logs at: https://oscilogs.quobyte.com/logs/I36163947a09b82cfc40ab4b522d82ffb503a0b84 .","accounts_in_message":[],"_revision_number":2},{"id":"63fcbed3d1b65faa61049c35ebaa83cffac348a3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 12:07:48.000000000","message":"Patch Set 2: 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/f394bee205ec41eeb0ad3a130b18af6d\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/aa7c658722f04d8192fbb1d4336263a0 : SUCCESS in 33m 17s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/2ac764a34d364d339339befee162f189 : SUCCESS in 1h 18m 34s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/37cdda8358c04fe19024c433390427ca : SUCCESS in 1h 08m 33s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e1bee3ae01f34ccba6b33e45cc00995d : SUCCESS in 1h 11m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dd6336c955fd4d64b78971b891c97b33 : FAILURE in 9m 42s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/940ac41cdcaf47958d70b57ceb34a1e0 : SUCCESS in 12m 03s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/67a9833bec1d44daa479b003c37f739e : SUCCESS in 13m 48s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/c6b0f89d7fe04eeb81d27c48b2c3260d : SUCCESS in 15m 18s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/da4af77f2fa9442fb77ebcd03f18ec1e : SUCCESS in 8m 16s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4376a6b580bb406b87b5b4b4a83cd652 : SUCCESS in 8m 59s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/06a8859c87a14cbcac0f3d1c423aeb37 : SUCCESS in 1h 11m 08s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/cfa9e175f7dd41d7803142adaaac2c9e : SUCCESS in 1h 50m 14s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/df757c67ad7b4d0992817a4325dd9e70 : SUCCESS in 37m 25s\n- nova-whitebox https://zuul.opendev.org/t/openstack/build/23894ae07c1b4518b1752810418833c5 : SUCCESS in 42m 29s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/c2d11f13277947ffb01d40b881e51347 : SUCCESS in 1h 02m 43s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/56206362035c48efb2697a30790d4ad6 : SUCCESS in 46m 24s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/3498d094518940df81798c0dacd0f9df : SUCCESS in 2h 00m 25s\n- nova-next https://zuul.opendev.org/t/openstack/build/34137989c26247a3a907091505bb6627 : SUCCESS in 2h 11m 12s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/902e3b9439bc44838947f31fadda4908 : SUCCESS in 35m 25s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/6db8a685208c4b309988829843efafc1 : SUCCESS in 5m 15s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/f634eb6d5521485f8b4da0a6ae1c4fca : SUCCESS in 23m 57s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/7e9b9c20a54b4dbb919853a1d2400337 : SUCCESS in 29m 44s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/032d36563d504869878b2a503623cde1 : FAILURE in 48m 31s (non-voting)\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/e174c57734de408d873f7bd8c3fde4d9 : SUCCESS in 1h 32m 32s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/71ff275a895d45e6820db38f855811dc : SUCCESS in 45m 22s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/02888be1418941918d558c63f571a966 : SUCCESS in 18m 42s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/74137707085e499bb3dbf19b481ae15a : SUCCESS in 40m 24s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/4c1cc8874a42432fbc62854a8ee65c11 : SUCCESS in 14m 00s","accounts_in_message":[],"_revision_number":2},{"id":"c8c8256e43440123630d223bf43422226bb7dd59","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 12:29:19.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ad57c04f0201454f9496901abf022cce\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/f2908ab8de3346edb59832219f285862 : SUCCESS in 20m 58s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/014678be6e8d4021bcaafb5712ff620a : SUCCESS in 15m 45s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/4f7bec4c85024014ba4372fb72e02305 : SUCCESS in 32m 20s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"2f3d3ca7bc479274abfe5a512d5287c1823a0dc0","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-06 12:39:26.000000000","message":"Patch Set 2: Workflow-1\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"d9741060ccc51757db49dd9bf5231a749d5a9eba","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-06 12:50:55.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n* Workflow-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"13569925351472620c16d3cdb217658b43e7771c","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-07-06 13:52:17.000000000","message":"Patch Set 3:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I36163947a09b82cfc40ab4b522d82ffb503a0b84 .","accounts_in_message":[],"_revision_number":3},{"id":"317e1b04ccda468699288736c016f79849b781ab","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 14:51:26.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c711cf3e40ea4968a1eff9877f063be3\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/805f356a0c534f998d57fce239587802 : SUCCESS in 12m 21s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/4ec973575ae14822b6d20b719cb1e013 : SUCCESS in 16m 07s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/dc1ef8e3259a4959b7ccf15c533915e0 : SUCCESS in 34m 12s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"d4b47ac9f3f84857b028dce838b128e787019d55","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 15:45:19.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/19ffd5a9a5bc417ab1b8fae3eb554a8c\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b50b8afe0e83473dafa4b17a5d8710c5 : SUCCESS in 1h 02m 40s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/6655bbe1edf248f4818efbf3943182d2 : SUCCESS in 1h 47m 36s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/df7aa35cebeb4e66994b14743399479b : SUCCESS in 1h 09m 19s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fbacfba2ad8e47de95a1ddf497c45feb : SUCCESS in 1h 18m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2184aa539c704790857251f62fd2bad3 : SUCCESS in 10m 22s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/a846762e72c04962ad2c4d6ba6914696 : SUCCESS in 15m 40s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/9496c35a95024325bbb9cc3368a27b67 : SUCCESS in 12m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7a7a7ad8bcfb4ca18fdc42dd171c2bfb : SUCCESS in 17m 39s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d3348646ffd043e78641cbf29f56bb10 : SUCCESS in 12m 55s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/921ef69a54da43238493c2dc0ca902a1 : SUCCESS in 8m 57s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/c3a4f4546fbe46e6b781ac0438200559 : SUCCESS in 59m 53s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/92f5243945fe49c3af691fa4abc11512 : SUCCESS in 1h 51m 08s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/44527218f20b46e09aff05f4db044c36 : SUCCESS in 57m 56s\n- nova-whitebox https://zuul.opendev.org/t/openstack/build/3b12d76995ef4adeb649b9229a6a2019 : SUCCESS in 44m 35s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/3ca296084e9a4dff98f37c267337a787 : SUCCESS in 1h 00m 20s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/6a8463a260d74b31a2ab37cc29a192dd : SUCCESS in 47m 12s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/12a456c0caf847d586febab3957a7f77 : SUCCESS in 2h 11m 16s\n- nova-next https://zuul.opendev.org/t/openstack/build/54682d41502840cbbb48e3b02d2f0f82 : SUCCESS in 2h 43m 23s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/002c14fc8e16431ca97031adf64544e3 : SUCCESS in 54m 52s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/6b0aa1b9100340ffa12f48724bec90cf : SUCCESS in 6m 25s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/ba3aae76851245e38122d89c6a80fd8c : SUCCESS in 27m 00s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/4a4fc4fc42534cc3addcc97cca5cdc7c : SUCCESS in 25m 04s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/dbc8989fa26c417ebb49608d50ef2d32 : TIMED_OUT in 2h 01m 26s (non-voting)\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/aee1b28766d84b468581ecda23f7d6d9 : SUCCESS in 1h 37m 18s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/357e6239107a423d9748b15974e45de9 : SUCCESS in 55m 13s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/ba79e7dbc54a4f5098c0426f47c10f96 : SUCCESS in 35m 26s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/7c2498b4dbbf4fefa0a95e57165225d0 : SUCCESS in 35m 54s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/fa59d5bb3d27410eb11e882e7582ce61 : SUCCESS in 14m 11s","accounts_in_message":[],"_revision_number":3},{"id":"823c718c17c0bd2aa7f54bea5929e98cdd190d9d","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-07-06 15:56:38.000000000","message":"Patch Set 3:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":3},{"id":"fa7771204b9b03cc93c026758a6de5a8fb2be526","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-13 20:08:28.000000000","message":"Patch Set 4: Patch Set 3 was rebased\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"d71b96683e7ca63dde83a01337533baa6005255b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-13 20:57:49.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fe215c4ae87b4724a0eeca1e3c3f878a\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/6f3be47f501b4653946485752b31b211 : SUCCESS in 23m 38s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/38a845753d6846dfaf02ab320d0677d8 : SUCCESS in 27m 20s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/de09dddecc524c53ba31d5cbd35410ea : SUCCESS in 42m 23s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"46b727a3d7dd8b0dff3c383e4a929fb70b423ecf","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-07-13 21:07:29.000000000","message":"Patch Set 4:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I36163947a09b82cfc40ab4b522d82ffb503a0b84 .","accounts_in_message":[],"_revision_number":4},{"id":"57e659109554d7ad0e2f7847d1f50576334d1b82","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-13 22:07:28.000000000","message":"Patch Set 4: Verified-1\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/408c712e980a4eae8585ce282e1e7e34\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/50e67b206eef4dc9817984506182185a : SUCCESS in 29m 17s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/fddf281e81c9469c9f342f9a702a7f43 : SUCCESS in 1h 34m 11s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/79779c6f9c764cd1930b19398a7ad8f0 : SUCCESS in 1h 05m 14s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2ede824d4b934359b4441461eeac742d : SUCCESS in 1h 14m 47s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/80cf0de5af1643779161b5af6ee6fe24 : SUCCESS in 8m 12s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6e13aded4c2c46e0ad198908025b4c09 : SUCCESS in 10m 47s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b421b1d7f70645f6aab2cd7e11550f44 : SUCCESS in 14m 38s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/3d250e91c9da4339ab9d68812c567232 : SUCCESS in 18m 51s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0d496f387b7b40f59419629d6c1eb668 : SUCCESS in 6m 34s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9c59573ea3bf41a6a40ae1ccaa9334a2 : SUCCESS in 7m 48s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/a0f8fd080b7549c98ddfa96439babd26 : SUCCESS in 1h 03m 54s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/f6570dab7d47441f899b6c453eff9f0e : FAILURE in 10m 01s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/c471c541a517401194478f450de97c9d : SUCCESS in 48m 36s\n- nova-whitebox https://zuul.opendev.org/t/openstack/build/be1e3afe02384b4396e40c1e52cec7be : SUCCESS in 35m 25s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/1f2badd9b6054345bb9f9259574cde2a : SUCCESS in 59m 20s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/44ccc27c66ae470b8e4ae8ae49fc4aed : SUCCESS in 49m 11s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/1a6fe324f5b24fe49911c79c365afd38 : SUCCESS in 1h 52m 55s\n- nova-next https://zuul.opendev.org/t/openstack/build/bce363bbc20f42c1832e9e64c5bed3aa : SUCCESS in 1h 52m 36s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/f031f62f05de4364a429745880b097f2 : POST_FAILURE in 30m 57s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/dd8bed48c34a4c3bbd794d1b8e194939 : SUCCESS in 3m 37s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/6585cd11b08a41de9802a13a8a41c170 : SUCCESS in 24m 56s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/2c1e11ae36f74b95b4cbaaf7e8dc315d : SUCCESS in 29m 54s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/8ca12a58dd40436daf30924c4437c878 : SUCCESS in 27m 18s (non-voting)\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/97351e5c3d064e23b73182432e4dc92c : SUCCESS in 1h 24m 39s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/8dbea5b446cc4e7bafd4a9a326da164e : SUCCESS in 56m 04s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/932e15bc326f4eb6bd91b0a8c86ba200 : SUCCESS in 27m 54s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/efe87f93e7a042c3979c77487ab293b3 : SUCCESS in 33m 41s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/ea0a3e15deed4dca9bac5148b0135e69 : SUCCESS in 13m 05s","accounts_in_message":[],"_revision_number":4},{"id":"d154ab05d1b2daa9cf55be8eaa7e586303402843","tag":"autogenerated:sap-openstack-ci~result","author":{"_account_id":36571,"name":"vmwareapi CI run by SAP","display_name":"vmwareapi CI run by SAP","email":"openstack-ci@sap.com","username":"sap-openstack-ci","status":"CI account for integration tests of the Nova vmwareapi driver","tags":["SERVICE_USER"]},"date":"2026-07-15 21:47:45.000000000","message":"Patch Set 4:\n\nIgnore for now: Test failed. Logs on \u003chttp://openstack-ci-logs.global.cloud.sap/openstack-nova-980679-vzf28/index.html\u003e","accounts_in_message":[],"_revision_number":4},{"id":"54d13f6b7a1ad5890e14b75556eef4ab2dfce536","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-20 21:55:03.000000000","message":"Patch Set 4:\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"687f355cde7978edaff8ad56b2f84cd2e369fbee","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-20 22:27:52.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0fba380c281e43b4ae24f6cfd2e5f5e9\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/6028baea65ab4c6c86ec3e9a6b653cef : SUCCESS in 20m 29s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/74e366fe74614957b1a6184cc3ed8fca : SUCCESS in 20m 27s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/51648e642593445bbd35557c9345467d : SUCCESS in 30m 59s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"5da1380934df396aad5e06b7b973c8d37d62df08","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-20 23:52:06.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2697f6c045bd4f6f88cc4f018b6013bb\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/98277e9a3b4f482aadbb36dac690833f : SUCCESS in 45m 22s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/4cddd624f8df41da9d5d1bf6e8dc428e : SUCCESS in 1h 13m 24s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a4ee3f23e5d243e6b7fae6ed8ee74026 : SUCCESS in 35m 35s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1238e433b10742759fa31c8fa8572019 : SUCCESS in 1h 01m 51s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/550a8f76471847b4adcba27ab1d19b4a : SUCCESS in 5m 18s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0b5de10e99744bcf94be6c93210f0123 : SUCCESS in 10m 26s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f401684e952845a89ec8159c26c5b677 : SUCCESS in 10m 32s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/57e46882e3764f31bbbb71cbc76d343e : SUCCESS in 12m 52s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6a3b692ad8cd432085128660951c1c7f : SUCCESS in 10m 32s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/732b29ab4de2418f8713f54c559f527b : SUCCESS in 8m 33s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/a2c561879ed64d50a864e26ddc5bc53a : SUCCESS in 45m 21s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/e0f6b76c04b64f959ae4908d37515c69 : SUCCESS in 1h 08m 19s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/c2a57f9bb0c445909b89116af8900d91 : SUCCESS in 50m 18s\n- nova-whitebox https://zuul.opendev.org/t/openstack/build/827372449e6b4c78a1f0ec7bbe67bd71 : SUCCESS in 34m 43s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/43314668fbca489caa4f406dbb825acf : SUCCESS in 45m 14s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/2fe8134bf14a4568a1b66b40f68f9aef : SUCCESS in 48m 47s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/01c6718caf564505b47647833dfd2317 : SUCCESS in 1h 49m 08s\n- nova-next https://zuul.opendev.org/t/openstack/build/dc6a3be856aa4e54838e7dcfe5ef70b4 : SUCCESS in 1h 10m 45s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/c20a316df5654c6c8c9f22e5dde981b5 : SUCCESS in 32m 58s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/f4b5b7e553d0427887cb7ef8aa4be68c : SUCCESS in 5m 02s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/93666009e1484f78907a95f7eb3be14e : SUCCESS in 30m 24s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/32ee57c2a1f74979a026cd101703cc2e : SUCCESS in 25m 58s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/7ecfc805ee06495e93337230848873ad : FAILURE in 27m 02s (non-voting)\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/44510ef00eb740fa87f783763c3c2924 : SUCCESS in 1h 08m 37s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3aa8637cc7494243b7b557884dba5375 : SUCCESS in 51m 24s\n- cyborg-tempest-py3 https://zuul.opendev.org/t/openstack/build/a9450550237d4c2d9743c45676a94c24 : SUCCESS in 22m 48s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/913f2a88e59a42129335b4350546313a : SUCCESS in 14m 29s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/90ad98cb78a34b13828c514842fcf97d : SUCCESS in 8m 37s","accounts_in_message":[],"_revision_number":4},{"id":"7ad2cc2fc700eb318ba45d24791c80f0619c0329","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-07-21 00:02:36.000000000","message":"Patch Set 4:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"98f74e88a213ff7f0110b253b2286d3e2c740748","revisions":{"82a836f74430d217ca05df41795bceee86a8517a":{"kind":"REWORK","_number":1,"created":"2026-03-16 10:37:08.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/79/980679/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/79/980679/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/79/980679/1"}}},"commit":{"parents":[{"commit":"9aa6d98e2a480b82d8ea74a3d161bfb7c71b22b2","subject":"[WIP] perf(ironic): background _error_out_interrupted during startup (B4)","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/9aa6d98e2a480b82d8ea74a3d161bfb7c71b22b2"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-16 00:19:10.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-16 10:35:52.000000000","tz":0},"subject":"[WIP] perf(compute): parallelise per-node update_available_resource loop (B2)","message":"[WIP] perf(compute): parallelise per-node update_available_resource loop (B2)\n\nThe update_available_resource periodic task iterates all managed nodes\nserially.  For the Ironic driver with N\u003d1000 nodes and ~2 s per node\nthis takes ~33 minutes — nearly the entire periodic interval.\n\nAdd [compute] update_resources_max_workers (default 1) which creates a\nfuturist thread-pool executor and fans out per-node updates through\nnova.utils.spawn_on().  When the option is 1 (default) the original\nsequential loop runs unchanged, preserving existing behaviour for all\nsingle-node drivers.\n\nThread-safety analysis:\n  - Each node\u0027s update reads/writes only its own ResourceTracker key\n    in the shared compute_nodes dict — safe under the GIL.\n  - SchedulerReportClient._provider_tree is protected by a per-tree\n    lock; the subtree() / update_from_provider_tree(scope_rp_uuid\u003d)\n    pattern from commit B6 ensures per-node isolation.\n  - All DB writes in _update_available_resource_for_node operate on\n    per-node ComputeNode objects so concurrent writes to different\n    nodes are independent.\n\nFor an Ironic deployment with max_workers\u003d32 and N\u003d1000 nodes the\nexpected wall-clock time drops from ~33 min to ~1 min.\n\nUnit test: test_update_available_resource_parallel asserts all nodes\nare processed when max_workers \u003e 1.\n\nRelated-Bug: startup performance bottleneck B2 (startup.md)\nGenerated-By: Cursor sonnet 4.6\nChange-Id: I36163947a09b82cfc40ab4b522d82ffb503a0b84\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/82a836f74430d217ca05df41795bceee86a8517a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/82a836f74430d217ca05df41795bceee86a8517a"}]},"branch":"refs/heads/master"},"82427231e66fbb9c78d343486386cc0a1c0eaa4b":{"kind":"REWORK","_number":2,"created":"2026-07-06 09:32:43.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/79/980679/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/79/980679/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/79/980679/2"}}},"commit":{"parents":[{"commit":"de1fcccd967328064f51bc320e203cec6910f9e4","subject":"Reduce ProviderTree copy cost for Ironic","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/de1fcccd967328064f51bc320e203cec6910f9e4"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-16 00:19:10.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-07-03 17:48:50.000000000","tz":60},"subject":"Parallelize per-node resource updates","message":"Parallelize per-node resource updates\n\nThe update_available_resource periodic task updates every node managed by a\ncompute service serially. This is acceptable for drivers that manage one or a\nsmall number of nodes, but it can make nova-compute startup and periodic\nresource reporting take many minutes for large Ironic deployments where a\nsingle compute service can manage hundreds or thousands of bare metal nodes.\n\nAdd [compute] update_resources_max_workers, defaulting to 1, to let operators\nfan out per-node updates through the compute service executor. The default\nkeeps the previous sequential behavior. Larger values allow Ironic deployments\nto trade additional nova-compute CPU usage and Placement API concurrency for\nlower wall-clock update latency.\n\nThe parallel path drains every scheduled future before returning. If one or\nmore per-node updates fail, the first exception is re-raised after all futures\nare drained so startup-fatal errors keep the same semantics as the sequential\npath.\n\nDocument the Ironic tuning guidance and add a release note that frames the\nstartup and resource-reporting improvements in this series as performance bug\nfixes for large Ironic deployments.\n\nGenerated-By: Cursor sonnet 4.6\nChange-Id: I36163947a09b82cfc40ab4b522d82ffb503a0b84\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/82427231e66fbb9c78d343486386cc0a1c0eaa4b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/82427231e66fbb9c78d343486386cc0a1c0eaa4b"}]},"branch":"refs/heads/master"},"c2806dd895846150edbd2d38363800be89d3f7a6":{"kind":"REWORK","_number":3,"created":"2026-07-06 12:50:55.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/79/980679/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/79/980679/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/79/980679/3"}}},"commit":{"parents":[{"commit":"de1fcccd967328064f51bc320e203cec6910f9e4","subject":"Reduce ProviderTree copy cost for Ironic","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/de1fcccd967328064f51bc320e203cec6910f9e4"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-16 00:19:10.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-07-06 12:50:21.000000000","tz":60},"subject":"Parallelize per-node resource updates","message":"Parallelize per-node resource updates\n\nThe update_available_resource periodic task updates every node managed by a\ncompute service serially. This is acceptable for drivers that manage one or a\nsmall number of nodes, but it can make nova-compute startup and periodic\nresource reporting take many minutes for large Ironic deployments where a\nsingle compute service can manage hundreds or thousands of bare metal nodes.\n\nAdd [compute] update_resources_max_workers, defaulting to 1, to let operators\nfan out per-node updates through the compute service executor. The default\nkeeps the previous sequential behavior. Larger values allow Ironic deployments\nto trade additional nova-compute CPU usage and Placement API concurrency for\nlower wall-clock update latency.\n\nThe parallel path drains every scheduled future before returning. If one or\nmore per-node updates fail, the first exception is re-raised after all futures\nare drained so startup-fatal errors keep the same semantics as the sequential\npath.\n\nDocument the Ironic tuning guidance and add a release note that frames the\nstartup and resource-reporting improvements in this series as performance bug\nfixes for large Ironic deployments.\n\nGenerated-By: Cursor sonnet 4.6\nChange-Id: I36163947a09b82cfc40ab4b522d82ffb503a0b84\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c2806dd895846150edbd2d38363800be89d3f7a6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/c2806dd895846150edbd2d38363800be89d3f7a6"}]},"branch":"refs/heads/master"},"98f74e88a213ff7f0110b253b2286d3e2c740748":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-07-13 20:08:28.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/79/980679/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/79/980679/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/79/980679/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/79/980679/4"}}},"commit":{"parents":[{"commit":"88493bec306f09d61a02d61aa7247a13c0e19a11","subject":"Reduce ProviderTree copy cost for Ironic","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/88493bec306f09d61a02d61aa7247a13c0e19a11"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-16 00:19:10.000000000","tz":0},"committer":{"name":"sean mooney","email":"work@seanmooney.info","date":"2026-07-13 20:08:28.000000000","tz":0},"subject":"Parallelize per-node resource updates","message":"Parallelize per-node resource updates\n\nThe update_available_resource periodic task updates every node managed by a\ncompute service serially. This is acceptable for drivers that manage one or a\nsmall number of nodes, but it can make nova-compute startup and periodic\nresource reporting take many minutes for large Ironic deployments where a\nsingle compute service can manage hundreds or thousands of bare metal nodes.\n\nAdd [compute] update_resources_max_workers, defaulting to 1, to let operators\nfan out per-node updates through the compute service executor. The default\nkeeps the previous sequential behavior. Larger values allow Ironic deployments\nto trade additional nova-compute CPU usage and Placement API concurrency for\nlower wall-clock update latency.\n\nThe parallel path drains every scheduled future before returning. If one or\nmore per-node updates fail, the first exception is re-raised after all futures\nare drained so startup-fatal errors keep the same semantics as the sequential\npath.\n\nDocument the Ironic tuning guidance and add a release note that frames the\nstartup and resource-reporting improvements in this series as performance bug\nfixes for large Ironic deployments.\n\nGenerated-By: Cursor sonnet 4.6\nChange-Id: I36163947a09b82cfc40ab4b522d82ffb503a0b84\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/98f74e88a213ff7f0110b253b2286d3e2c740748"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/98f74e88a213ff7f0110b253b2286d3e2c740748"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"de1fcccd967328064f51bc320e203cec6910f9e4","ours":"c2806dd895846150edbd2d38363800be89d3f7a6","theirs":"88493bec306f09d61a02d61aa7247a13c0e19a11","merge_strategy":"recursive","contains_conflicts":false}}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"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":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
