)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"68c19680def5401fe7a0178558fb7d430870a458","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ef00c5ec_2ab314bb","updated":"2022-09-07 21:38:21.000000000","message":"Nice work","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"33849ec1e9d548e62ffccffb8a5e8bd14f31818b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"76eb4331_81b25d08","updated":"2022-09-07 22:56:52.000000000","message":"recheck the failing tests seam to pass fine for me locally and there is nothing obvious in this patch that could casue \nnova.tests.functional.test_servers_resource_request.ServerMoveWithMultiGroupResourceRequestBasedSchedulingTest.test_evacuate_with_qos_port_pci_update_fail to fail\n\nso i suspect there is an intermitent test failure but i dont think its being introduced by this change","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3078681531f2d2c9405f4c7fc7019b263f621718","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4aac303e_f68f2d6b","updated":"2022-09-07 22:43:04.000000000","message":"the functional test failures are reals and related to this patch.\nill take a look in the morning but i woudl guess this conflicted with the pci seriese","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"63d49572a92f0948f997e53778f4daab3afd5e0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a7ebdcaf_e9752c7b","updated":"2022-07-15 15:17:29.000000000","message":"with the inline comment you have in the repoducer i think this is valid given the limitations of our test infrastructure.\n\ni would have perhaps prefered to see this be a standaloen regression test but getting the libvirt and pci infra working is a bit of a pain so i proably would have done it in test_pci_sriov_servers too.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a793d81a26c97ed5f7f63769d11ae5b8d2fe2be6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"88eaa68b_6387099d","updated":"2022-09-08 10:52:46.000000000","message":"Trivial change to avoid double mocking. Fine by me","commit_id":"f8c91eb75fc5504a37fc3b4be1d65d33dbc9b511"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36ab4be5f4245abf981cabbc49b696fbc5b94d7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4e57b2f2_fbcfba3f","updated":"2022-09-08 10:29:45.000000000","message":"zuul is no happy after the rebase/refactor and the content still looks good to readding +2","commit_id":"f8c91eb75fc5504a37fc3b4be1d65d33dbc9b511"}],"nova/tests/fixtures/libvirt.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36ab4be5f4245abf981cabbc49b696fbc5b94d7c","unresolved":true,"context_lines":[{"line_number":2234,"context_line":""},{"line_number":2235,"context_line":"        # libvirt driver needs to call out to the filesystem to get the"},{"line_number":2236,"context_line":"        # parent_ifname for the SRIOV VFs."},{"line_number":2237,"context_line":"        self.mock_get_ifname_by_pci_address \u003d self.useFixture("},{"line_number":2238,"context_line":"            fixtures.MockPatch("},{"line_number":2239,"context_line":"                \"nova.pci.utils.get_ifname_by_pci_address\","},{"line_number":2240,"context_line":"                return_value\u003d\"fake_pf_interface_name\","}],"source_content_type":"text/x-python","patch_set":3,"id":"293babe1_e3f3e960","line":2237,"updated":"2022-09-08 10:29:45.000000000","message":"ack so this adresses the double mocking","commit_id":"f8c91eb75fc5504a37fc3b4be1d65d33dbc9b511"}],"nova/tests/functional/libvirt/test_pci_sriov_servers.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"4dff85798b833c789044d9cd05d09127d664210d","unresolved":true,"context_lines":[{"line_number":972,"context_line":"        self._create_server(networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":973,"context_line":""},{"line_number":974,"context_line":"        port \u003d copy.deepcopy(port)"},{"line_number":975,"context_line":"        port[\u0027binding:vnic_type\u0027] \u003d \u0027macvtap\u0027"},{"line_number":976,"context_line":"        self.neutron.update_port(port[\u0027id\u0027], {\"port\": port})"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"        # Force an update on the instance info cache to ensure nova gets the"}],"source_content_type":"text/x-python","patch_set":1,"id":"c3be00c1_599b2c33","line":975,"updated":"2022-07-15 11:33:47.000000000","message":"So if we move this line after L968 and remove everything else between server creation and service restart, the test still passes. IOW, all we\u0027re doing here is showing that with a macvtap port, if you mock the PCI code to return \"not found\", starting nova-compute will fail. And IIUC the vnic type change is how we can trigger that in real life? It still feels like a very contrived test...","commit_id":"6d3402971cc6577a1660bfa263b91abeb9cff1e4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"077c1ea0211f704314382802d39e7a04476a3dbc","unresolved":false,"context_lines":[{"line_number":972,"context_line":"        self._create_server(networks\u003d[{\u0027port\u0027: port[\u0027id\u0027]}])"},{"line_number":973,"context_line":""},{"line_number":974,"context_line":"        port \u003d copy.deepcopy(port)"},{"line_number":975,"context_line":"        port[\u0027binding:vnic_type\u0027] \u003d \u0027macvtap\u0027"},{"line_number":976,"context_line":"        self.neutron.update_port(port[\u0027id\u0027], {\"port\": port})"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"        # Force an update on the instance info cache to ensure nova gets the"}],"source_content_type":"text/x-python","patch_set":1,"id":"328b0a7d_f2723dcc","line":975,"in_reply_to":"c3be00c1_599b2c33","updated":"2022-07-15 13:25:48.000000000","message":"Thanks for catching it. I did a too broad mocking and error injection. I should only inject the error if there is an instance that already consumed the VF directly. Now I added such check via inspecting the existing libvirt domains.","commit_id":"6d3402971cc6577a1660bfa263b91abeb9cff1e4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"33849ec1e9d548e62ffccffb8a5e8bd14f31818b","unresolved":true,"context_lines":[{"line_number":953,"context_line":"            ],"},{"line_number":954,"context_line":"        )"},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"    def test_change_bound_port_vnic_type_kills_compute_at_restart(self):"},{"line_number":957,"context_line":"        \"\"\"Create a server with a direct port and change the vnic_type of the"},{"line_number":958,"context_line":"        bound port to macvtap. Then restart the compute service."},{"line_number":959,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"937833c1_4d8c4e54","line":956,"range":{"start_line":956,"start_character":8,"end_line":956,"end_character":65},"updated":"2022-09-07 22:56:52.000000000","message":"so this is failing btu an unrelated test is also failing so im thinink there is som unintneded sharing happening do this might be just a flaky test.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eb3f429176529f65e56736d72efd0de1d1c65c8d","unresolved":false,"context_lines":[{"line_number":953,"context_line":"            ],"},{"line_number":954,"context_line":"        )"},{"line_number":955,"context_line":""},{"line_number":956,"context_line":"    def test_change_bound_port_vnic_type_kills_compute_at_restart(self):"},{"line_number":957,"context_line":"        \"\"\"Create a server with a direct port and change the vnic_type of the"},{"line_number":958,"context_line":"        bound port to macvtap. Then restart the compute service."},{"line_number":959,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"375b5aaa_b8640eba","line":956,"range":{"start_line":956,"start_character":8,"end_line":956,"end_character":65},"in_reply_to":"937833c1_4d8c4e54","updated":"2022-09-08 07:20:51.000000000","message":"it needed a rebase, there was changes in the restart service utility on master since this patch was written. I adapted the test now.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f280368393378cbf5d4ad03446205cf66a5ec67b","unresolved":true,"context_lines":[{"line_number":990,"context_line":"            # we want to fail the netdev lookup only if the pci_address is"},{"line_number":991,"context_line":"            # already consumed by our instance. So we look into the instance"},{"line_number":992,"context_line":"            # definition to see if the device is attached to the instance as VF"},{"line_number":993,"context_line":"            compute \u003d self.computes[\u0027compute1\u0027]"},{"line_number":994,"context_line":"            conn \u003d compute.manager.driver._host.get_connection()"},{"line_number":995,"context_line":"            dom \u003d conn.lookupByUUIDString(server[\u0027id\u0027])"},{"line_number":996,"context_line":"            dev \u003d dom._def[\u0027devices\u0027][\u0027nics\u0027][0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"7c0040fb_d535e79e","line":993,"updated":"2022-09-08 07:14:38.000000000","message":"the restart_compute_service pops the compute being restarted from the self.computes, and only puts it back if the restart is successful so as this call runs during the restart this is another key error.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eb3f429176529f65e56736d72efd0de1d1c65c8d","unresolved":false,"context_lines":[{"line_number":990,"context_line":"            # we want to fail the netdev lookup only if the pci_address is"},{"line_number":991,"context_line":"            # already consumed by our instance. So we look into the instance"},{"line_number":992,"context_line":"            # definition to see if the device is attached to the instance as VF"},{"line_number":993,"context_line":"            compute \u003d self.computes[\u0027compute1\u0027]"},{"line_number":994,"context_line":"            conn \u003d compute.manager.driver._host.get_connection()"},{"line_number":995,"context_line":"            dom \u003d conn.lookupByUUIDString(server[\u0027id\u0027])"},{"line_number":996,"context_line":"            dev \u003d dom._def[\u0027devices\u0027][\u0027nics\u0027][0]"}],"source_content_type":"text/x-python","patch_set":2,"id":"45330859_0a07d063","line":993,"in_reply_to":"7c0040fb_d535e79e","updated":"2022-09-08 07:20:51.000000000","message":"Done","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ccb31b62331e93d948689bb2a179b4f7385b4621","unresolved":true,"context_lines":[{"line_number":999,"context_line":"                dev[\u0027type\u0027] \u003d\u003d \u0027hostdev\u0027 and"},{"line_number":1000,"context_line":"                dev[\u0027source\u0027] \u003d\u003d \u0027pci_\u0027 + lookup_addr"},{"line_number":1001,"context_line":"            ):"},{"line_number":1002,"context_line":"                # nova tried to look up the netdev of an already consumed VF."},{"line_number":1003,"context_line":"                # So we have to fail"},{"line_number":1004,"context_line":"                raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":1005,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"345de1a5_0b8c2d3f","line":1002,"updated":"2022-07-15 13:33:28.000000000","message":"Nice.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eb3f429176529f65e56736d72efd0de1d1c65c8d","unresolved":false,"context_lines":[{"line_number":999,"context_line":"                dev[\u0027type\u0027] \u003d\u003d \u0027hostdev\u0027 and"},{"line_number":1000,"context_line":"                dev[\u0027source\u0027] \u003d\u003d \u0027pci_\u0027 + lookup_addr"},{"line_number":1001,"context_line":"            ):"},{"line_number":1002,"context_line":"                # nova tried to look up the netdev of an already consumed VF."},{"line_number":1003,"context_line":"                # So we have to fail"},{"line_number":1004,"context_line":"                raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":1005,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"06453579_5f10173b","line":1002,"in_reply_to":"345de1a5_0b8c2d3f","updated":"2022-09-08 07:20:51.000000000","message":"Ack","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8392623ed3e300bbf6a1498fd938fd5fc01f8a4a","unresolved":true,"context_lines":[{"line_number":1010,"context_line":"        # bound to the instance, the VF pci device is already consumed by the"},{"line_number":1011,"context_line":"        # instance and therefore there is no netdev for the VF."},{"line_number":1012,"context_line":"        with mock.patch("},{"line_number":1013,"context_line":"            \u0027nova.pci.utils.get_ifname_by_pci_address\u0027,"},{"line_number":1014,"context_line":"            side_effect\u003dfake_get_ifname_by_pci_address,"},{"line_number":1015,"context_line":"        ):"},{"line_number":1016,"context_line":"            # This is bug 1981813 as the compute service fails to start with an"}],"source_content_type":"text/x-python","patch_set":2,"id":"c11925c8_62b89b65","line":1013,"updated":"2022-09-08 07:06:32.000000000","message":"This is a double mocking now. This is at least one reason why this fails on the gate.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eb3f429176529f65e56736d72efd0de1d1c65c8d","unresolved":false,"context_lines":[{"line_number":1010,"context_line":"        # bound to the instance, the VF pci device is already consumed by the"},{"line_number":1011,"context_line":"        # instance and therefore there is no netdev for the VF."},{"line_number":1012,"context_line":"        with mock.patch("},{"line_number":1013,"context_line":"            \u0027nova.pci.utils.get_ifname_by_pci_address\u0027,"},{"line_number":1014,"context_line":"            side_effect\u003dfake_get_ifname_by_pci_address,"},{"line_number":1015,"context_line":"        ):"},{"line_number":1016,"context_line":"            # This is bug 1981813 as the compute service fails to start with an"}],"source_content_type":"text/x-python","patch_set":2,"id":"bdbaf622_49b5ba29","line":1013,"in_reply_to":"c11925c8_62b89b65","updated":"2022-09-08 07:20:51.000000000","message":"Done","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"63d49572a92f0948f997e53778f4daab3afd5e0e","unresolved":true,"context_lines":[{"line_number":1009,"context_line":"        # the parent of the macvtap. However, as the originally direct port is"},{"line_number":1010,"context_line":"        # bound to the instance, the VF pci device is already consumed by the"},{"line_number":1011,"context_line":"        # instance and therefore there is no netdev for the VF."},{"line_number":1012,"context_line":"        with mock.patch("},{"line_number":1013,"context_line":"            \u0027nova.pci.utils.get_ifname_by_pci_address\u0027,"},{"line_number":1014,"context_line":"            side_effect\u003dfake_get_ifname_by_pci_address,"},{"line_number":1015,"context_line":"        ):"},{"line_number":1016,"context_line":"            # This is bug 1981813 as the compute service fails to start with an"},{"line_number":1017,"context_line":"            # exception."},{"line_number":1018,"context_line":"            # Nova cannot prevent the vnic_type change on a bound port. Neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"320c1212_7f5fa8d8","line":1015,"range":{"start_line":1012,"start_character":6,"end_line":1015,"end_character":10},"updated":"2022-07-15 15:17:29.000000000","message":"ack\n\nthis is slightly more indreict then i would have liked however i cant think of a better way to do this and you are asserting the error is raised via the service restart which mirror the actul failure mode so i think this is a valid way to repoduce this.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eb3f429176529f65e56736d72efd0de1d1c65c8d","unresolved":false,"context_lines":[{"line_number":1009,"context_line":"        # the parent of the macvtap. However, as the originally direct port is"},{"line_number":1010,"context_line":"        # bound to the instance, the VF pci device is already consumed by the"},{"line_number":1011,"context_line":"        # instance and therefore there is no netdev for the VF."},{"line_number":1012,"context_line":"        with mock.patch("},{"line_number":1013,"context_line":"            \u0027nova.pci.utils.get_ifname_by_pci_address\u0027,"},{"line_number":1014,"context_line":"            side_effect\u003dfake_get_ifname_by_pci_address,"},{"line_number":1015,"context_line":"        ):"},{"line_number":1016,"context_line":"            # This is bug 1981813 as the compute service fails to start with an"},{"line_number":1017,"context_line":"            # exception."},{"line_number":1018,"context_line":"            # Nova cannot prevent the vnic_type change on a bound port. Neutron"}],"source_content_type":"text/x-python","patch_set":2,"id":"081f8935_9f715bf9","line":1015,"range":{"start_line":1012,"start_character":6,"end_line":1015,"end_character":10},"in_reply_to":"320c1212_7f5fa8d8","updated":"2022-09-08 07:20:51.000000000","message":"Ack","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"14c6ea03def97d73d86dd572a22feb48bf30562a","unresolved":true,"context_lines":[{"line_number":1021,"context_line":"            # inconsistent state."},{"line_number":1022,"context_line":"            self.assertRaises("},{"line_number":1023,"context_line":"                exception.PciDeviceNotFoundById,"},{"line_number":1024,"context_line":"                self.restart_compute_service, self.computes[\u0027compute1\u0027]"},{"line_number":1025,"context_line":"            )"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"98c675e8_62db492f","line":1024,"range":{"start_line":1024,"start_character":46,"end_line":1024,"end_character":71},"updated":"2022-09-08 07:11:34.000000000","message":"the restart_compute_service util now takes the hostname of the compute not the compute manager object. This is the reason of the key error.","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"eb3f429176529f65e56736d72efd0de1d1c65c8d","unresolved":false,"context_lines":[{"line_number":1021,"context_line":"            # inconsistent state."},{"line_number":1022,"context_line":"            self.assertRaises("},{"line_number":1023,"context_line":"                exception.PciDeviceNotFoundById,"},{"line_number":1024,"context_line":"                self.restart_compute_service, self.computes[\u0027compute1\u0027]"},{"line_number":1025,"context_line":"            )"},{"line_number":1026,"context_line":""},{"line_number":1027,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"a04b3179_00642e7f","line":1024,"range":{"start_line":1024,"start_character":46,"end_line":1024,"end_character":71},"in_reply_to":"98c675e8_62db492f","updated":"2022-09-08 07:20:51.000000000","message":"Done","commit_id":"6407c96b9b86cabbfe02cc17a4e20a54946aaea7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"36ab4be5f4245abf981cabbc49b696fbc5b94d7c","unresolved":true,"context_lines":[{"line_number":1100,"context_line":"        # the parent of the macvtap. However, as the originally direct port is"},{"line_number":1101,"context_line":"        # bound to the instance, the VF pci device is already consumed by the"},{"line_number":1102,"context_line":"        # instance and therefore there is no netdev for the VF."},{"line_number":1103,"context_line":"        self.libvirt.mock_get_ifname_by_pci_address.side_effect \u003d ("},{"line_number":1104,"context_line":"            fake_get_ifname_by_pci_address"},{"line_number":1105,"context_line":"        )"},{"line_number":1106,"context_line":"        # This is bug 1981813 as the compute service fails to start with an"}],"source_content_type":"text/x-python","patch_set":3,"id":"8496047f_7d80746f","line":1103,"updated":"2022-09-08 10:29:45.000000000","message":"and we now use it here instead of remocking","commit_id":"f8c91eb75fc5504a37fc3b4be1d65d33dbc9b511"}]}
