)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"a154b2c65b0cf5379e9db281cbacdbac7a1dea25","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ironic: retry when node not available"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After a baremetal instance is deleted, and its allocation is removed in placement,"},{"line_number":10,"context_line":"the ironic node might start cleaning. Eventually nova will notice and update the"},{"line_number":11,"context_line":"inventory to be reserved. During this window, a new instance may have already"},{"line_number":12,"context_line":"picked this ironic node."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"08c50330_0d480bae","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":82},"updated":"2022-05-19 14:05:22.000000000","message":"Body is too long: should be 72 chars max:\nhttps://docs.openstack.org/contributors/common/git.html#body","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"400ad2031bbc33f69812ab41c055ef791d662c34","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ironic: retry when node not available"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After a baremetal instance is deleted, and its allocation is removed in placement,"},{"line_number":10,"context_line":"the ironic node might start cleaning. Eventually nova will notice and update the"},{"line_number":11,"context_line":"inventory to be reserved. During this window, a new instance may have already"},{"line_number":12,"context_line":"picked this ironic node."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"48542102_f9b58258","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":82},"in_reply_to":"08c50330_0d480bae","updated":"2022-05-19 14:48:35.000000000","message":"doh! Sorry. I must get my editor configured properly again.","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d4b36693678aff453862bde4803d31f849cd2c06","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Ironic: retry when node not available"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After a baremetal instance is deleted, and its allocation is removed in placement,"},{"line_number":10,"context_line":"the ironic node might start cleaning. Eventually nova will notice and update the"},{"line_number":11,"context_line":"inventory to be reserved. During this window, a new instance may have already"},{"line_number":12,"context_line":"picked this ironic node."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1c49748e_06bee2a7","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":82},"in_reply_to":"48542102_f9b58258","updated":"2022-05-19 14:49:40.000000000","message":"Done","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"a154b2c65b0cf5379e9db281cbacdbac7a1dea25","unresolved":true,"context_lines":[{"line_number":17,"context_line":"This change tries to make sure we instead trigger a re-schedule and try"},{"line_number":18,"context_line":"another node, instead of just aborting the build."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Fixes-Bug: #1974070"},{"line_number":21,"context_line":"Change-Id: Ie5cdc17219c86927ab3769605808cb9d9fa9fa4d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"8eadb5e9_f375bb89","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":9},"updated":"2022-05-19 14:05:22.000000000","message":"Should be Closes-bug","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d4b36693678aff453862bde4803d31f849cd2c06","unresolved":false,"context_lines":[{"line_number":17,"context_line":"This change tries to make sure we instead trigger a re-schedule and try"},{"line_number":18,"context_line":"another node, instead of just aborting the build."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Fixes-Bug: #1974070"},{"line_number":21,"context_line":"Change-Id: Ie5cdc17219c86927ab3769605808cb9d9fa9fa4d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"0af69d58_6efed2f3","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":9},"in_reply_to":"43f9effa_39729bc8","updated":"2022-05-19 14:49:40.000000000","message":"Done","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"400ad2031bbc33f69812ab41c055ef791d662c34","unresolved":true,"context_lines":[{"line_number":17,"context_line":"This change tries to make sure we instead trigger a re-schedule and try"},{"line_number":18,"context_line":"another node, instead of just aborting the build."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Fixes-Bug: #1974070"},{"line_number":21,"context_line":"Change-Id: Ie5cdc17219c86927ab3769605808cb9d9fa9fa4d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"43f9effa_39729bc8","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":9},"in_reply_to":"8eadb5e9_f375bb89","updated":"2022-05-19 14:48:35.000000000","message":"I keep forgetting the new one, sorry.","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b78d0e2ec8bb905502525467b36fb674139ad4ec","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After a baremetal instance is deleted, and its allocation is removed"},{"line_number":10,"context_line":"in placement, the ironic node might start cleaning. Eventually nova"},{"line_number":11,"context_line":"will notice and update the inventory to be reserved."},{"line_number":12,"context_line":"During this window, a new instance may have already picked this"},{"line_number":13,"context_line":"ironic node."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7bc6df47_23bd5d6a","line":11,"updated":"2022-05-20 09:19:35.000000000","message":"this sound like yet another impedence mismatch between ironci and nova.\n\nif cleanign is to happen that really should be driven by the ironic virt driver\nif it cant be driven by the ironic virt driver it should at least know that cleaning is configured in ironic for the bearmetal node and it should mark the compute node inventoy as reserved until the cleaning is complete as part of delete","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5c74e3bb44406d265d2d2b6ed1156b253b00219e","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After a baremetal instance is deleted, and its allocation is removed"},{"line_number":10,"context_line":"in placement, the ironic node might start cleaning. Eventually nova"},{"line_number":11,"context_line":"will notice and update the inventory to be reserved."},{"line_number":12,"context_line":"During this window, a new instance may have already picked this"},{"line_number":13,"context_line":"ironic node."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"6e7e3183_bf8be939","line":11,"in_reply_to":"7bc6df47_23bd5d6a","updated":"2022-05-25 13:49:18.000000000","message":"I agree, it would be good if api behaviour changes triggered by config changes were exposed, but I don’t believe they are today.","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b78d0e2ec8bb905502525467b36fb674139ad4ec","unresolved":true,"context_lines":[{"line_number":15,"context_line":"When that race happens today the build fails with an error:"},{"line_number":16,"context_line":"\"Failed to reserve node ...\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This change tries to make sure we instead trigger a re-schedule and"},{"line_number":19,"context_line":"try another node, instead of just aborting the build."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1974070"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"44c54ca8_0e4b490d","line":18,"updated":"2022-05-20 09:19:35.000000000","message":"we removed re-schedules form nova a long time ago you mean we should use an alternitive host form the list that was generated when we initally schedule.\n\nthe exception is still a reshcudle but its not actully a reschdule since we dont use teh retry fileter and go back to the schduler.","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5c74e3bb44406d265d2d2b6ed1156b253b00219e","unresolved":true,"context_lines":[{"line_number":15,"context_line":"When that race happens today the build fails with an error:"},{"line_number":16,"context_line":"\"Failed to reserve node ...\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This change tries to make sure we instead trigger a re-schedule and"},{"line_number":19,"context_line":"try another node, instead of just aborting the build."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1974070"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ce6d2cb4_90a2b741","line":18,"in_reply_to":"44c54ca8_0e4b490d","updated":"2022-05-25 13:49:18.000000000","message":"yeah, I mean try the next host, a sloppy use of words there.","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b78d0e2ec8bb905502525467b36fb674139ad4ec","unresolved":true,"context_lines":[{"line_number":18,"context_line":"This change tries to make sure we instead trigger a re-schedule and"},{"line_number":19,"context_line":"try another node, instead of just aborting the build."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1974070"},{"line_number":22,"context_line":"Change-Id: Ie5cdc17219c86927ab3769605808cb9d9fa9fa4d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fb1d8dcf_bee52ab8","line":21,"updated":"2022-05-20 09:19:35.000000000","message":"i dont think this really close the bug.\n\nthis seams to be a workaound but the acual fix would be to make sure teh driver as part of delete reserved the node if its going to be cleaned so this cant actully happen.\n\n\nso this should be either Partial-Bug: or Related-Bug","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5c74e3bb44406d265d2d2b6ed1156b253b00219e","unresolved":true,"context_lines":[{"line_number":18,"context_line":"This change tries to make sure we instead trigger a re-schedule and"},{"line_number":19,"context_line":"try another node, instead of just aborting the build."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Closes-Bug: #1974070"},{"line_number":22,"context_line":"Change-Id: Ie5cdc17219c86927ab3769605808cb9d9fa9fa4d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"38b97f4a_1b6073fd","line":21,"in_reply_to":"fb1d8dcf_bee52ab8","updated":"2022-05-25 13:49:18.000000000","message":"very true, although users don’t really care if they don’t get failed builds.\n\nWithout placement and ironic api changes, I am not sure how to close the gap. we need to reserve before we remove the allocation (I think that is a conflict right now, as we go negative resources? I might be out of date). actually that is enough… when it goes available the sync loop can unreserve it. Would that work?","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"3f881f33c57c863574ac188f3e1830b9a598a801","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2393f959_91ccf138","updated":"2022-05-19 14:55:40.000000000","message":"Thank you very much!","commit_id":"1496957dabbe76966cc81e9976cb82cb15f4c60c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5c74e3bb44406d265d2d2b6ed1156b253b00219e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0b877a95_011eb84b","updated":"2022-05-25 13:49:18.000000000","message":"I am still trying to push this into the production cloud that is hitting these races when rebuilding via terraform (delete then create), and not hitting the ‘spares’ pool. not yet sure if this helps in practice, will report back news on that ","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b78d0e2ec8bb905502525467b36fb674139ad4ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"40e6cab3_e0bddac3","updated":"2022-05-20 09:19:35.000000000","message":"over all i think this looks fine but its not actully fixing the bug in my view\nits just hiding it so that users dont notice.","commit_id":"35a0eb0952946afcd58f2dc2da265b1a81cbe0f0"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"0e927aadad93099bbcd09094a2f9d16a0630847d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e3ee2ad2_fad0b897","updated":"2022-11-15 16:17:14.000000000","message":"If this is backportable (I think yes?); we should consider backporting it.","commit_id":"002f2661cff8e3721d938320c83bc2ff2c49c9fb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f52d38e787f36a5d7c1d2fc9c670652f869fea89","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"79c63fdc_f0273f64","updated":"2022-11-16 17:22:51.000000000","message":"Thanks for the reviews, but I may have finally found a more strange but more complete fix for this issue... We might still want to land this.","commit_id":"002f2661cff8e3721d938320c83bc2ff2c49c9fb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7f47eb5ffc6b6d4d1888ffcfe7bde341af602057","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9063a350_f34a53fd","updated":"2022-11-17 09:16:15.000000000","message":"We might want to merge this one too:\nhttps://review.opendev.org/c/openstack/nova/+/864773\n\nAlthough honestly merging both is probably a good idea, given this will help for other reasons where we are out of sync with ironic on a node state, like when something gets taken out of the available state due to a detected disk error, etc, and it takes us a little while to spot that in the periodic task.","commit_id":"002f2661cff8e3721d938320c83bc2ff2c49c9fb"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"25cc67c1a45f89bab2d3cfe3c8f88a4a548e6763","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"aed854b4_b885afee","updated":"2022-11-20 00:58:29.000000000","message":"recheck","commit_id":"002f2661cff8e3721d938320c83bc2ff2c49c9fb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"381b25dd75c309737f4e24379170c350775c9472","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ad1b6ca4_5d16d547","updated":"2022-12-15 16:34:17.000000000","message":"re-approving after a rebase, it got tangoed by some CI bug.","commit_id":"8a476061c5e034016668cd9e5a20c4430ef6b68d"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":19234,"name":"Alexey Stupnikov","email":"aleksey.stupnikov@gmail.com","username":"astupnikov"},"change_message_id":"a154b2c65b0cf5379e9db281cbacdbac7a1dea25","unresolved":true,"context_lines":[{"line_number":7677,"context_line":"                       \u0027prepare_networks_before_block_device_mapping\u0027)"},{"line_number":7678,"context_line":"    @mock.patch.object(virt_driver.ComputeDriver,"},{"line_number":7679,"context_line":"                       \u0027clean_networks_preparation\u0027)"},{"line_number":7680,"context_line":"    def test_failed_prepare_for_spawn(self, mock_clean,"},{"line_number":7681,"context_line":"                                                           mock_prepnet,"},{"line_number":7682,"context_line":"                                                           mock_prepspawn,"},{"line_number":7683,"context_line":"                                                           mock_failedspawn):"},{"line_number":7684,"context_line":"        mock_prepspawn.side_effect \u003d exception.ComputeResourcesUnavailable("},{"line_number":7685,"context_line":"                reason\u003d\"asdf\")"},{"line_number":7686,"context_line":"        with mock.patch.object(self.compute,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e44699e4_463c10f8","line":7683,"range":{"start_line":7680,"start_character":0,"end_line":7683,"end_character":77},"updated":"2022-05-19 14:05:22.000000000","message":"It looks like indentation is incorrect here.","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d4b36693678aff453862bde4803d31f849cd2c06","unresolved":false,"context_lines":[{"line_number":7677,"context_line":"                       \u0027prepare_networks_before_block_device_mapping\u0027)"},{"line_number":7678,"context_line":"    @mock.patch.object(virt_driver.ComputeDriver,"},{"line_number":7679,"context_line":"                       \u0027clean_networks_preparation\u0027)"},{"line_number":7680,"context_line":"    def test_failed_prepare_for_spawn(self, mock_clean,"},{"line_number":7681,"context_line":"                                                           mock_prepnet,"},{"line_number":7682,"context_line":"                                                           mock_prepspawn,"},{"line_number":7683,"context_line":"                                                           mock_failedspawn):"},{"line_number":7684,"context_line":"        mock_prepspawn.side_effect \u003d exception.ComputeResourcesUnavailable("},{"line_number":7685,"context_line":"                reason\u003d\"asdf\")"},{"line_number":7686,"context_line":"        with mock.patch.object(self.compute,"}],"source_content_type":"text/x-python","patch_set":1,"id":"f379a084_32cc4a64","line":7683,"range":{"start_line":7680,"start_character":0,"end_line":7683,"end_character":77},"in_reply_to":"d91c2506_f67f2683","updated":"2022-05-19 14:49:40.000000000","message":"Done","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"400ad2031bbc33f69812ab41c055ef791d662c34","unresolved":true,"context_lines":[{"line_number":7677,"context_line":"                       \u0027prepare_networks_before_block_device_mapping\u0027)"},{"line_number":7678,"context_line":"    @mock.patch.object(virt_driver.ComputeDriver,"},{"line_number":7679,"context_line":"                       \u0027clean_networks_preparation\u0027)"},{"line_number":7680,"context_line":"    def test_failed_prepare_for_spawn(self, mock_clean,"},{"line_number":7681,"context_line":"                                                           mock_prepnet,"},{"line_number":7682,"context_line":"                                                           mock_prepspawn,"},{"line_number":7683,"context_line":"                                                           mock_failedspawn):"},{"line_number":7684,"context_line":"        mock_prepspawn.side_effect \u003d exception.ComputeResourcesUnavailable("},{"line_number":7685,"context_line":"                reason\u003d\"asdf\")"},{"line_number":7686,"context_line":"        with mock.patch.object(self.compute,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d91c2506_f67f2683","line":7683,"range":{"start_line":7680,"start_character":0,"end_line":7683,"end_character":77},"in_reply_to":"e44699e4_463c10f8","updated":"2022-05-19 14:48:35.000000000","message":"yes, oops, bad cut and pasting.","commit_id":"e14bf852e0ed7579f1d8c9b92cc340e9160164ab"}]}
