)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3310d731672f7b5e90ddb910225ab1f62a7e7070","unresolved":true,"context_lines":[{"line_number":10,"context_line":"the configuration while a device is still being allocated. It keeps the"},{"line_number":11,"context_line":"device until the VM is deleted to avoid inconsistencies."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"However the full removal of such device needed not just the VM deletion"},{"line_number":14,"context_line":"but also a nova-compute restart. The device tracker just freed such"},{"line_number":15,"context_line":"device during VM deletion but did not removed them until the next"},{"line_number":16,"context_line":"nova-compute startup. This allows such device to be re-allocated by"},{"line_number":17,"context_line":"another VM even though the device_spec is removed for the device."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This change adds yet another in memory list to the pci tracker to track"},{"line_number":20,"context_line":"these devices that are only kept until they are freed. Then during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a39398de_443b0622","line":17,"range":{"start_line":13,"start_character":0,"end_line":17,"end_character":65},"updated":"2025-09-02 11:31:33.000000000","message":"However the full removal of such a device needs not just the VM deletion,\nbut also a nova-compute restart. The device tracker just frees the \ndevice during VM deletion but does not removed them until the next\nnova-compute startup. This allows the device to be re-allocated by\nanother VM even though the device is not allowed by a device_spec.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac657155f741cbf6d4fb43e61d63630bbabeeb1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the configuration while a device is still being allocated. It keeps the"},{"line_number":11,"context_line":"device until the VM is deleted to avoid inconsistencies."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"However the full removal of such device needed not just the VM deletion"},{"line_number":14,"context_line":"but also a nova-compute restart. The device tracker just freed such"},{"line_number":15,"context_line":"device during VM deletion but did not removed them until the next"},{"line_number":16,"context_line":"nova-compute startup. This allows such device to be re-allocated by"},{"line_number":17,"context_line":"another VM even though the device_spec is removed for the device."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This change adds yet another in memory list to the pci tracker to track"},{"line_number":20,"context_line":"these devices that are only kept until they are freed. Then during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"931d0a8b_d7b8334c","line":17,"range":{"start_line":13,"start_character":0,"end_line":17,"end_character":65},"in_reply_to":"a39398de_443b0622","updated":"2025-09-04 08:34:20.000000000","message":"Done","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3310d731672f7b5e90ddb910225ab1f62a7e7070","unresolved":true,"context_lines":[{"line_number":16,"context_line":"nova-compute startup. This allows such device to be re-allocated by"},{"line_number":17,"context_line":"another VM even though the device_spec is removed for the device."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This change adds yet another in memory list to the pci tracker to track"},{"line_number":20,"context_line":"these devices that are only kept until they are freed. Then during"},{"line_number":21,"context_line":"free() this list is consulted and if the device is in the list then the"},{"line_number":22,"context_line":"device is marked for removal as well."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"88d2b6f2_0c910e10","line":19,"range":{"start_line":19,"start_character":39,"end_line":19,"end_character":43},"updated":"2025-09-02 11:31:33.000000000","message":"nit: dict","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac657155f741cbf6d4fb43e61d63630bbabeeb1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"nova-compute startup. This allows such device to be re-allocated by"},{"line_number":17,"context_line":"another VM even though the device_spec is removed for the device."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This change adds yet another in memory list to the pci tracker to track"},{"line_number":20,"context_line":"these devices that are only kept until they are freed. Then during"},{"line_number":21,"context_line":"free() this list is consulted and if the device is in the list then the"},{"line_number":22,"context_line":"device is marked for removal as well."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f5d145f9_175a0e2a","line":19,"range":{"start_line":19,"start_character":39,"end_line":19,"end_character":43},"in_reply_to":"88d2b6f2_0c910e10","updated":"2025-09-04 08:34:20.000000000","message":"Done","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3310d731672f7b5e90ddb910225ab1f62a7e7070","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This kills two birds with one stone:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* We prevent the re-allocation of such device as the state of the device"},{"line_number":27,"context_line":"  will be set to REMOVED not AVAILABLE during VM deletion."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As PCI in Placement relies on the state of the device to decide what"},{"line_number":30,"context_line":"  to track in placement this change makes sure that such device that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"01b22436_ecb31d62","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":58},"updated":"2025-09-02 11:31:33.000000000","message":"* We prevent the re-allocation of the device as the state of the device\n  will be set to REMOVED not AVAILABLE during VM deletion.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac657155f741cbf6d4fb43e61d63630bbabeeb1","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This kills two birds with one stone:"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* We prevent the re-allocation of such device as the state of the device"},{"line_number":27,"context_line":"  will be set to REMOVED not AVAILABLE during VM deletion."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As PCI in Placement relies on the state of the device to decide what"},{"line_number":30,"context_line":"  to track in placement this change makes sure that such device that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"e9e1ffb2_df6d3f28","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":58},"in_reply_to":"01b22436_ecb31d62","updated":"2025-09-04 08:34:20.000000000","message":"Done","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3310d731672f7b5e90ddb910225ab1f62a7e7070","unresolved":true,"context_lines":[{"line_number":26,"context_line":"* We prevent the re-allocation of such device as the state of the device"},{"line_number":27,"context_line":"  will be set to REMOVED not AVAILABLE during VM deletion."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As PCI in Placement relies on the state of the device to decide what"},{"line_number":30,"context_line":"  to track in placement this change makes sure that such device that"},{"line_number":31,"context_line":"  needs to be removed now removed from placement too. Note that we have"},{"line_number":32,"context_line":"  another bug that prevents this removal for now. But at least the"},{"line_number":33,"context_line":"  reproducers of that bug now starts to behave the same regardless of"},{"line_number":34,"context_line":"  how many device belongs to the same RP in placement."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Related-Bug: #2115905"},{"line_number":37,"context_line":"Change-Id: I63c8fb2669a3c6b3adb77d210c0f9b39d3657c80"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a1c49c85_0aff7973","line":34,"range":{"start_line":29,"start_character":0,"end_line":34,"end_character":54},"updated":"2025-09-02 11:31:33.000000000","message":"* As PCI in Placement relies on the state of the device to decide what\n  to track in placement, this change makes sure that a device that\n  needs to be removed, is now removed from placement too. Note that we have\n  another bug that prevents this removal for now. But at least the\n  reproducers of that bug now starts to behave the same regardless of\n  how many device belongs to the same RP in placement.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac657155f741cbf6d4fb43e61d63630bbabeeb1","unresolved":false,"context_lines":[{"line_number":26,"context_line":"* We prevent the re-allocation of such device as the state of the device"},{"line_number":27,"context_line":"  will be set to REMOVED not AVAILABLE during VM deletion."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As PCI in Placement relies on the state of the device to decide what"},{"line_number":30,"context_line":"  to track in placement this change makes sure that such device that"},{"line_number":31,"context_line":"  needs to be removed now removed from placement too. Note that we have"},{"line_number":32,"context_line":"  another bug that prevents this removal for now. But at least the"},{"line_number":33,"context_line":"  reproducers of that bug now starts to behave the same regardless of"},{"line_number":34,"context_line":"  how many device belongs to the same RP in placement."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Related-Bug: #2115905"},{"line_number":37,"context_line":"Change-Id: I63c8fb2669a3c6b3adb77d210c0f9b39d3657c80"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3d444cb4_9a2cd540","line":34,"range":{"start_line":29,"start_character":0,"end_line":34,"end_character":54},"in_reply_to":"a1c49c85_0aff7973","updated":"2025-09-04 08:34:20.000000000","message":"Done","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"feb13e62c45a4a1fcb59d6c5f22786fb2b073aa0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"53689a8e_796d751a","updated":"2025-07-10 14:31:16.000000000","message":"+1 because id dint go into enouch detail but reading the commit message and skiming the changes i think this is the right approch.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b67ee048477bf20ab15e1fa297ae45d910b54055","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"335ef633_ad1c607f","updated":"2025-09-02 13:51:21.000000000","message":"as I said, wasn\u0027t a simple change to review but I\u0027m eventually OK.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3310d731672f7b5e90ddb910225ab1f62a7e7070","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1c842d49_a408ed0e","updated":"2025-09-02 11:31:33.000000000","message":"im going to keep reviewing \n\nthere are some more wording nits in the commit\n\ni think it would make sense to respine the serise at the end but sofar i dont see anyting wrong on the code side so +2 for now","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c5b8c024382bb0184a73c2d2106b0906893d1487","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d7b1c87f_cd555e97","updated":"2025-07-11 08:36:40.000000000","message":"recheck bug/2116336","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e4e8eb925434e16d15eac8c759e5bd4a7085dbd3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e46bc715_0f400c4e","updated":"2025-07-17 11:49:27.000000000","message":"recheck gate is unblocked","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d25c6d91db7faf743a3496d067c3e8b1fa29bd06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ae412eca_a7930699","updated":"2025-09-04 12:31:00.000000000","message":"recheck one test failed in the multicell job due to auth failure while sshing to the guest\n```\n2025-09-04 09:55:48.312 100053 ERROR tempest.lib.common.ssh paramiko.ssh_exception.AuthenticationException: Authentication failed.\n\n```","commit_id":"f37cdf0c4182103ad81dbf39188ff39955da3850"}],"nova/pci/manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b67ee048477bf20ab15e1fa297ae45d910b54055","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                    # the tracker can not just free the device but also"},{"line_number":261,"context_line":"                    # mark them for removal. This will prevent a bug where"},{"line_number":262,"context_line":"                    # such a freed device is re-allocated before removed."},{"line_number":263,"context_line":"                    self.to_be_removed_when_freed[existed.address] \u003d existed"},{"line_number":264,"context_line":"                    continue"},{"line_number":265,"context_line":"                else:"},{"line_number":266,"context_line":"                    # Note(yjiang5): no need to update stats if an assigned"}],"source_content_type":"text/x-python","patch_set":1,"id":"e4e101e9_c24b6424","line":263,"updated":"2025-09-02 13:51:21.000000000","message":"took me a while to understand the logic behind but OK, I see it now.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3310d731672f7b5e90ddb910225ab1f62a7e7070","unresolved":true,"context_lines":[{"line_number":410,"context_line":"                self.stats.remove_device(dev)"},{"line_number":411,"context_line":"        else:"},{"line_number":412,"context_line":"            for dev in freed_devs:"},{"line_number":413,"context_line":"                self.stats.add_device(dev)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    def free_instance_allocations("},{"line_number":416,"context_line":"        self, context: ctx.RequestContext, instance: \u0027objects.Instance\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"4b7b05ca_24976bc6","line":413,"updated":"2025-09-02 11:31:33.000000000","message":"+1\n\nmy intall reaction was to try an refactor this to simplfy this logic but no this is fine as it is.\n\nmy inclination is to try and find an elegat way to combine the stale. to be freed and default cause but the right answer is to keep it simpel and just add an if  like you have :) no need to over think this.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b67ee048477bf20ab15e1fa297ae45d910b54055","unresolved":true,"context_lines":[{"line_number":410,"context_line":"                self.stats.remove_device(dev)"},{"line_number":411,"context_line":"        else:"},{"line_number":412,"context_line":"            for dev in freed_devs:"},{"line_number":413,"context_line":"                self.stats.add_device(dev)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    def free_instance_allocations("},{"line_number":416,"context_line":"        self, context: ctx.RequestContext, instance: \u0027objects.Instance\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d5af3e56_cf7dec15","line":413,"in_reply_to":"4b7b05ca_24976bc6","updated":"2025-09-02 13:51:21.000000000","message":"I\u0027m cool with the existing logic as _set_hv_devs() is correctly providing the right list.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac657155f741cbf6d4fb43e61d63630bbabeeb1","unresolved":false,"context_lines":[{"line_number":410,"context_line":"                self.stats.remove_device(dev)"},{"line_number":411,"context_line":"        else:"},{"line_number":412,"context_line":"            for dev in freed_devs:"},{"line_number":413,"context_line":"                self.stats.add_device(dev)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    def free_instance_allocations("},{"line_number":416,"context_line":"        self, context: ctx.RequestContext, instance: \u0027objects.Instance\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"22918076_b5153404","line":413,"in_reply_to":"d5af3e56_cf7dec15","updated":"2025-09-04 08:34:20.000000000","message":"\u003e my inclination is to try and find an elegat way to combine the stale. to be freed and default cause\n\nI felt your pain when I wrote it, I tried but I didn\u0027t find an elegant solution.","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"}],"nova/tests/functional/libvirt/test_pci_in_placement.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3310d731672f7b5e90ddb910225ab1f62a7e7070","unresolved":true,"context_lines":[{"line_number":931,"context_line":"        server \u003d self.api.get_server(server[\u0027id\u0027])"},{"line_number":932,"context_line":"        self.assertEqual(server[\u0027status\u0027], \u0027ERROR\u0027)"},{"line_number":933,"context_line":""},{"line_number":934,"context_line":"        # And the allocation is not removed."},{"line_number":935,"context_line":"        self.assert_placement_pci_view("},{"line_number":936,"context_line":"            \"compute1\", **compute1_expected_placement_view)"},{"line_number":937,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"facdf747_b6d98287","line":934,"updated":"2025-09-02 11:31:33.000000000","message":"+1 ya this is a nice simplifacation","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8ac657155f741cbf6d4fb43e61d63630bbabeeb1","unresolved":false,"context_lines":[{"line_number":931,"context_line":"        server \u003d self.api.get_server(server[\u0027id\u0027])"},{"line_number":932,"context_line":"        self.assertEqual(server[\u0027status\u0027], \u0027ERROR\u0027)"},{"line_number":933,"context_line":""},{"line_number":934,"context_line":"        # And the allocation is not removed."},{"line_number":935,"context_line":"        self.assert_placement_pci_view("},{"line_number":936,"context_line":"            \"compute1\", **compute1_expected_placement_view)"},{"line_number":937,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"777e4616_dcf9e6a0","line":934,"in_reply_to":"facdf747_b6d98287","updated":"2025-09-04 08:34:20.000000000","message":"Acknowledged","commit_id":"d8819f65fea923b35226455dd2be51fe6bbd7eab"}]}
