)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38540,"name":"Sebastian Krott","email":"sebastian.krott@gmail.com","username":"sebkro"},"change_message_id":"b6c655d64417139a516eb5ffe589eb4c711cb0a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"fc669315_63ac9c70","updated":"2026-03-05 16:10:52.000000000","message":"Looks like `openstack-tox-py314` is failing for all recent Nova changes with the same error, so this should be unrelated. \nhttps://zuul.opendev.org/t/openstack/builds?job_name\u003dopenstack-tox-py314\u0026project\u003dopenstack%2Fnova\u0026skip\u003d0","commit_id":"bcb174ca0ab83755d3abf1fe2e76bc3b233b0218"},{"author":{"_account_id":38540,"name":"Sebastian Krott","email":"sebastian.krott@gmail.com","username":"sebkro"},"change_message_id":"3825fc7c1e70be78e49fe0833d075a0516fad621","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f8386bbe_89fab364","updated":"2026-03-11 09:25:44.000000000","message":"recheck (unrelated ceph issues)","commit_id":"bcb174ca0ab83755d3abf1fe2e76bc3b233b0218"},{"author":{"_account_id":26250,"name":"Johannes Kulik","email":"johannes.kulik@sap.com","username":"jkulik"},"change_message_id":"8e9c0b609c7549abe770a85b8576a9c9861705b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"cb03fe7d_03cf84bd","updated":"2026-03-04 09:10:47.000000000","message":"recheck - unrelated timeouts/problems with heat(?)","commit_id":"bcb174ca0ab83755d3abf1fe2e76bc3b233b0218"},{"author":{"_account_id":38540,"name":"Sebastian Krott","email":"sebastian.krott@gmail.com","username":"sebkro"},"change_message_id":"f4de942d96c9c884283035a7e7e0235a804ac922","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1c4a6e5d_374a7447","updated":"2026-08-05 09:39:57.000000000","message":"recheck - unrelated coverage test timeout","commit_id":"fe9107302449a41e1d79c893a5727832c27b0c0c"}],"nova/conductor/tasks/live_migrate.py":[{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"7dd693b4647ba0914d900eb2125af89f1154928f","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        # Check to see that neutron supports the binding-extended API."},{"line_number":401,"context_line":"        if self.network_api.has_port_binding_extension(self.context):"},{"line_number":402,"context_line":"            self.network_api.cleanup_instance_network_on_host("},{"line_number":403,"context_line":"                    self.context, self.instance, destination)"},{"line_number":404,"context_line":"            bindings \u003d self._bind_ports_on_destination("},{"line_number":405,"context_line":"                destination, provider_mapping)"}],"source_content_type":"text/x-python","patch_set":1,"id":"f74b8f53_7354d88d","line":402,"updated":"2026-07-31 13:37:51.000000000","message":"This patch will call delete_port_binding every time during live migration and ignore NotFound exception. I am not sure if this is correct approach for 2 reasons:\n1. You are not checking whether port binding is really inactive, but maybe we can be sure that port binding on the destination host is always inactive?\n2. Why to call it every time and not only on the conflict?\n\nPlease see https://review.opendev.org/c/openstack/nova/+/999374. This is similar to this one.","commit_id":"bcb174ca0ab83755d3abf1fe2e76bc3b233b0218"},{"author":{"_account_id":38540,"name":"Sebastian Krott","email":"sebastian.krott@gmail.com","username":"sebkro"},"change_message_id":"2a1cb01b0848ce5a4fcc21bfbb9ac254e1419471","unresolved":true,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        # Check to see that neutron supports the binding-extended API."},{"line_number":401,"context_line":"        if self.network_api.has_port_binding_extension(self.context):"},{"line_number":402,"context_line":"            self.network_api.cleanup_instance_network_on_host("},{"line_number":403,"context_line":"                    self.context, self.instance, destination)"},{"line_number":404,"context_line":"            bindings \u003d self._bind_ports_on_destination("},{"line_number":405,"context_line":"                destination, provider_mapping)"}],"source_content_type":"text/x-python","patch_set":1,"id":"6683197f_34bf93b1","line":402,"in_reply_to":"19e8e339_8781ebea","updated":"2026-08-04 19:08:19.000000000","message":"Thanks for your comments! Let me try to address them:\n\n1. I think it doesn\u0027t matter whether the destination port-bindings are active or not. We are migrating the instance from the source host A to a different destination host B. And no port-bindings on B have been created yet at this stage of the migration. So (assuming that the instance is indeed on A) any existing port-bindings on B must be invalid and should be deleted. Irrespective of whether Neutron considers these port-bindings to be active or not.\n\n2. Please note that this PR also includes change https://review.opendev.org/c/openstack/nova/+/978122 which adds host filtering to the port fetching in `cleanup_instance_network_on_host` to avoid unnecessary port deletion attempts. So there won\u0027t be any redundant calls to `delete_port_binding` and the overhead seems minor (one `list_ports` call to Neutron). Reusing `cleanup_instance_network_on_host` also reduces code duplication and ensures consistency e.g. for handling exceptions raised by `delete_port_binding`.","commit_id":"bcb174ca0ab83755d3abf1fe2e76bc3b233b0218"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"12375c3c6ec5b5f7b9d2fc31ff3ada12a4595f6c","unresolved":true,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        # Check to see that neutron supports the binding-extended API."},{"line_number":401,"context_line":"        if self.network_api.has_port_binding_extension(self.context):"},{"line_number":402,"context_line":"            self.network_api.cleanup_instance_network_on_host("},{"line_number":403,"context_line":"                    self.context, self.instance, destination)"},{"line_number":404,"context_line":"            bindings \u003d self._bind_ports_on_destination("},{"line_number":405,"context_line":"                destination, provider_mapping)"}],"source_content_type":"text/x-python","patch_set":1,"id":"48f51880_7b2cdb7c","line":402,"in_reply_to":"6683197f_34bf93b1","updated":"2026-08-11 11:39:49.000000000","message":"1. I don\u0027t understand neutron code 100%, but if this is true, then I agree. We doesn\u0027t have to check status of the port. But I would like to see some kind of confirmation from someone else. Then I can also update my patch to just delete+create in case of conflict.\n2. Host filtering is nice, but that also needs some review, whether it is needed everytime the cleanup_instance_network_on_host is called. I like also the idea of code deduplication, but still as you said you have to list ports from neutron and I think in most cases you will don\u0027t have to.","commit_id":"bcb174ca0ab83755d3abf1fe2e76bc3b233b0218"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"cd4db6dbf32364e04781778f9d6f4bf43c72791c","unresolved":true,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        # Check to see that neutron supports the binding-extended API."},{"line_number":401,"context_line":"        if self.network_api.has_port_binding_extension(self.context):"},{"line_number":402,"context_line":"            self.network_api.cleanup_instance_network_on_host("},{"line_number":403,"context_line":"                    self.context, self.instance, destination)"},{"line_number":404,"context_line":"            bindings \u003d self._bind_ports_on_destination("},{"line_number":405,"context_line":"                destination, provider_mapping)"}],"source_content_type":"text/x-python","patch_set":1,"id":"19e8e339_8781ebea","line":402,"in_reply_to":"f74b8f53_7354d88d","updated":"2026-07-31 13:39:54.000000000","message":"Marked as unresolved.","commit_id":"bcb174ca0ab83755d3abf1fe2e76bc3b233b0218"}]}
