)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"508e25d7648b469bca5240fbcf5825b680365c0e","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This reproduction shows that a cold migration that fails to access the"},{"line_number":10,"context_line":"destination compute via ssh leaks PCI allocations on the destination."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #2166786"},{"line_number":13,"context_line":"Change-Id: I13837d1b3cc09519ac95586553666b69854c200c"},{"line_number":14,"context_line":"Signed-off-by: Balazs Gibizer \u003cgibi@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"aa1d6195_78783988","line":11,"updated":"2026-09-18 14:06:34.000000000","message":"nit: you could mention that PCI Placement allocations (if PCI in placement) are not impacted, just the PCITracker allocation ones (this can be confusing)","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d35b304dc7139a3032d96da3d9c0e7215b243306","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This reproduction shows that a cold migration that fails to access the"},{"line_number":10,"context_line":"destination compute via ssh leaks PCI allocations on the destination."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #2166786"},{"line_number":13,"context_line":"Change-Id: I13837d1b3cc09519ac95586553666b69854c200c"},{"line_number":14,"context_line":"Signed-off-by: Balazs Gibizer \u003cgibi@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"06966a72_1911a7b4","line":11,"in_reply_to":"aa1d6195_78783988","updated":"2026-09-21 11:05:45.000000000","message":"Done","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f1bd6361175973147d22054d74bf198bb903db50","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"54d61aa2_a611938a","updated":"2026-09-08 15:24:32.000000000","message":"I need to extend this with \n* a test case where pci_in_placement enabled and looking at the placement allocations","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d776bc822a7b35ca6558f302ede259f9110142c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8a01cc80_ad57e6f9","in_reply_to":"54d61aa2_a611938a","updated":"2026-09-08 16:08:04.000000000","message":"it seems pci in placement is not affected","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"508e25d7648b469bca5240fbcf5825b680365c0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5cd8511e_8c7bca6d","updated":"2026-09-18 14:06:34.000000000","message":"just some nits in case you need to rebase. Nothing really important it, me is bikeshedding.","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"356c3647ec7dfc9ba9709c6a366fbba937cc6410","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4144003f_cfd8618d","updated":"2026-09-21 14:05:47.000000000","message":"recheck functional timeout","commit_id":"fa7cf515b1c6c608617a887000192948e314f9a4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b3ad5ca7e2009bbe011ea8261fc4a233a38e1775","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d368387e_6c10e7f4","updated":"2026-09-22 11:57:17.000000000","message":"recheck hang","commit_id":"fa7cf515b1c6c608617a887000192948e314f9a4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"56fbce02b608d06719e7801436c2934ee940e6b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0d96f665_f835c200","updated":"2026-09-24 11:15:58.000000000","message":"recheck the functional hang is known and being worked","commit_id":"fa7cf515b1c6c608617a887000192948e314f9a4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3985d3eabc71e3a2f6419dd3f19a5e5412fd84fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ac745121_38b30609","updated":"2026-09-22 09:18:39.000000000","message":"recheck we really need to fix those hanging threading functional test cases","commit_id":"fa7cf515b1c6c608617a887000192948e314f9a4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"df4c0189265766d0ad6597afa2413870ea39cb0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9c087374_d9501f30","updated":"2026-09-21 15:27:35.000000000","message":"thanks for having addressed my nits","commit_id":"fa7cf515b1c6c608617a887000192948e314f9a4"}],"nova/tests/functional/regressions/test_bug_2166786.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":"import fixtures"},{"line_number":13,"context_line":"import threading"},{"line_number":14,"context_line":"import time"},{"line_number":15,"context_line":"from unittest import mock"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a2df9b8_691f64a6","line":12,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: F401 \u0027fixtures\u0027 imported but unused","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":"import fixtures"},{"line_number":13,"context_line":"import threading"},{"line_number":14,"context_line":"import time"},{"line_number":15,"context_line":"from unittest import mock"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"f02e09d4_116551c1","line":13,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: F401 \u0027threading\u0027 imported but unused","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":"import fixtures"},{"line_number":13,"context_line":"import threading"},{"line_number":14,"context_line":"import time"},{"line_number":15,"context_line":"from unittest import mock"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_serialization import jsonutils"}],"source_content_type":"text/x-python","patch_set":1,"id":"76cb6540_e817ed9b","line":14,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: F401 \u0027time\u0027 imported but unused","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from nova.objects import fields"},{"line_number":20,"context_line":"from nova.tests.fixtures import libvirt as fakelibvirt"},{"line_number":21,"context_line":"from nova import exception"},{"line_number":22,"context_line":"from nova.tests import fixtures as nova_fixtures"},{"line_number":23,"context_line":"from nova.tests.functional.libvirt import test_pci_sriov_servers as base"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0d4c3cd2_3ae2e09d","line":21,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: H306: imports not in alphabetical order (nova.tests.fixtures.libvirt, nova.exception)","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from nova.objects import fields"},{"line_number":20,"context_line":"from nova.tests.fixtures import libvirt as fakelibvirt"},{"line_number":21,"context_line":"from nova import exception"},{"line_number":22,"context_line":"from nova.tests import fixtures as nova_fixtures"},{"line_number":23,"context_line":"from nova.tests.functional.libvirt import test_pci_sriov_servers as base"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"f7fb0091_ef7b11f8","line":22,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: F401 \u0027nova.tests.fixtures as nova_fixtures\u0027 imported but unused","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TestPCIColdMigrationFailureRevert(base._PCIServersTestBase):"},{"line_number":27,"context_line":"    \"\"\""},{"line_number":28,"context_line":"    Regression test for bug https://bugs.launchpad.net/nova/+bug/2166786"},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    "}],"source_content_type":"text/x-python","patch_set":1,"id":"de278553_8a8dc386","line":27,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: H404: multi line docstring should start without a leading new line","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class TestPCIColdMigrationFailureRevert(base._PCIServersTestBase):"},{"line_number":27,"context_line":"    \"\"\""},{"line_number":28,"context_line":"    Regression test for bug https://bugs.launchpad.net/nova/+bug/2166786"},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    "},{"line_number":31,"context_line":"    microversion \u003d \u0027latest\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"d685f979_a44c0b0b","line":28,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: H404: multi line docstring should start without a leading new line","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2d18533713192ef704dc1a7646ea30ac6f3adbd0","unresolved":false,"context_lines":[{"line_number":26,"context_line":"class TestPCIColdMigrationFailureRevert(base._PCIServersTestBase):"},{"line_number":27,"context_line":"    \"\"\""},{"line_number":28,"context_line":"    Regression test for bug https://bugs.launchpad.net/nova/+bug/2166786"},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    "},{"line_number":31,"context_line":"    microversion \u003d \u0027latest\u0027"},{"line_number":32,"context_line":"    ADMIN_API \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f51c579_6cdbff62","line":29,"updated":"2026-09-08 16:03:40.000000000","message":"pep8: H404: multi line docstring should start without a leading new line","commit_id":"d0734154a8c405a520a79ef9d997581903f314fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"508e25d7648b469bca5240fbcf5825b680365c0e","unresolved":true,"context_lines":[{"line_number":78,"context_line":"        self.assert_pci_inventory(comp1, total\u003d2, free\u003d2)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # NOTE(gibi): we are simulating an ssh failure during migration"},{"line_number":81,"context_line":"        # when the libvirt driver thries to create the instance dir on the"},{"line_number":82,"context_line":"        # destination host via remotefs / ssh."},{"line_number":83,"context_line":"        with mock.patch("},{"line_number":84,"context_line":"            \u0027nova.virt.libvirt.driver.LibvirtDriver\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"dcde3e78_d98137a0","line":81,"range":{"start_line":81,"start_character":34,"end_line":81,"end_character":40},"updated":"2026-09-18 14:06:34.000000000","message":"nit: tries","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d35b304dc7139a3032d96da3d9c0e7215b243306","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        self.assert_pci_inventory(comp1, total\u003d2, free\u003d2)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        # NOTE(gibi): we are simulating an ssh failure during migration"},{"line_number":81,"context_line":"        # when the libvirt driver thries to create the instance dir on the"},{"line_number":82,"context_line":"        # destination host via remotefs / ssh."},{"line_number":83,"context_line":"        with mock.patch("},{"line_number":84,"context_line":"            \u0027nova.virt.libvirt.driver.LibvirtDriver\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"2b97ff70_25cdfcca","line":81,"range":{"start_line":81,"start_character":34,"end_line":81,"end_character":40},"in_reply_to":"dcde3e78_d98137a0","updated":"2026-09-21 11:05:45.000000000","message":"Done","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"508e25d7648b469bca5240fbcf5825b680365c0e","unresolved":true,"context_lines":[{"line_number":104,"context_line":"        # Also the migration context is not cleaned up on the instance after"},{"line_number":105,"context_line":"        # the migration failed and reverted."},{"line_number":106,"context_line":"        inst \u003d objects.Instance.get_by_uuid(self.ctxt, server[\u0027id\u0027])"},{"line_number":107,"context_line":"        self.assertIsNotNone(inst.migration_context)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self._delete_server(server)"},{"line_number":110,"context_line":"        self.assert_pci_inventory(comp0, total\u003d2, free\u003d2)"}],"source_content_type":"text/x-python","patch_set":6,"id":"8446c87b_481a5735","line":107,"updated":"2026-09-18 14:06:34.000000000","message":"nit: a FIXME saying that it will be fixed later in the series can be apprecied but meh.","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d35b304dc7139a3032d96da3d9c0e7215b243306","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        # Also the migration context is not cleaned up on the instance after"},{"line_number":105,"context_line":"        # the migration failed and reverted."},{"line_number":106,"context_line":"        inst \u003d objects.Instance.get_by_uuid(self.ctxt, server[\u0027id\u0027])"},{"line_number":107,"context_line":"        self.assertIsNotNone(inst.migration_context)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self._delete_server(server)"},{"line_number":110,"context_line":"        self.assert_pci_inventory(comp0, total\u003d2, free\u003d2)"}],"source_content_type":"text/x-python","patch_set":6,"id":"0f8f57bf_8f42302e","line":107,"in_reply_to":"8446c87b_481a5735","updated":"2026-09-21 11:05:45.000000000","message":"Done","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"508e25d7648b469bca5240fbcf5825b680365c0e","unresolved":true,"context_lines":[{"line_number":174,"context_line":"            usages\u003d{\"0000:81:00.0\": {\u0027CUSTOM_PCI_8086_1528\u0027: 0}})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(gibi): we are simulating an ssh failure during migration"},{"line_number":177,"context_line":"        # when the libvirt driver thries to create the instance dir on the"},{"line_number":178,"context_line":"        # destination host via remotefs / ssh."},{"line_number":179,"context_line":"        with mock.patch("},{"line_number":180,"context_line":"            \u0027nova.virt.libvirt.driver.LibvirtDriver\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1e5443f1_4a4e3ba6","line":177,"range":{"start_line":177,"start_character":34,"end_line":177,"end_character":40},"updated":"2026-09-18 14:06:34.000000000","message":"nit: tries","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d35b304dc7139a3032d96da3d9c0e7215b243306","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            usages\u003d{\"0000:81:00.0\": {\u0027CUSTOM_PCI_8086_1528\u0027: 0}})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # NOTE(gibi): we are simulating an ssh failure during migration"},{"line_number":177,"context_line":"        # when the libvirt driver thries to create the instance dir on the"},{"line_number":178,"context_line":"        # destination host via remotefs / ssh."},{"line_number":179,"context_line":"        with mock.patch("},{"line_number":180,"context_line":"            \u0027nova.virt.libvirt.driver.LibvirtDriver\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"bc2821a0_b5b8687a","line":177,"range":{"start_line":177,"start_character":34,"end_line":177,"end_character":40},"in_reply_to":"1e5443f1_4a4e3ba6","updated":"2026-09-21 11:05:45.000000000","message":"Done","commit_id":"ac3f4c04ad635f6641bdc45ccf21ac6fe6b5cc6f"}]}
