)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0fdf0e3abe53cfffdb47544a007c05e461dda1ce","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Delete inactive port bindings during live migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce option live_migration_delete_inactive_bindings for the nova-conductor."},{"line_number":10,"context_line":"When this option is set to true, inactive port binding at destination host is deleted during live migration."},{"line_number":11,"context_line":"Inactive port bindings on the destination host can exist due to cleanup"},{"line_number":12,"context_line":"failures (e.g., because of neutron unavailability) during rollback"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"a40a0535_8c1e50d4","line":9,"updated":"2026-07-31 12:56:45.000000000","message":"-1 this is not something i want to expose to operator to choose hwo to configure\n\nwe can traige the but behvior and if demed valid we can correct nova to clean up but i really dont want to make this code path even more complext with the ablilty for oeprator to configre this with yet anouther option.\n\nif anything i woudl strongly prefer to start removing some of the existin gworkaroudn and config option we have in this space\nsuch as \nhttps://docs.openstack.org/nova/latest/configuration/config.html#workarounds.wait_for_vif_plugged_event_during_hard_reboot\nand https://docs.openstack.org/nova/latest/configuration/config.html#compute.live_migration_wait_for_vif_plug","commit_id":"b6b792846a76c1389142de5810552e0496ac2194"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"4b61f2d38daa1f0dce54066c48be40fcc1b19b8f","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Delete inactive port bindings during live migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce option live_migration_delete_inactive_bindings for the nova-conductor."},{"line_number":10,"context_line":"When this option is set to true, inactive port binding at destination host is deleted during live migration."},{"line_number":11,"context_line":"Inactive port bindings on the destination host can exist due to cleanup"},{"line_number":12,"context_line":"failures (e.g., because of neutron unavailability) during rollback"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"4b587425_1d59d88c","line":9,"in_reply_to":"770ab4a5_67adb0ac","updated":"2026-08-03 06:15:56.000000000","message":"Thank you for the review.\n\nI updated patch, so now port bindings are deleted unconditionally.\n\nI don\u0027t think https://review.opendev.org/c/openstack/nova/+/653506 will fix this edge case, because it is activating port binding. And as far as I know, you want activate port binding on the destination host only after at the end of live migration.\n\nI see you already found related https://review.opendev.org/c/openstack/nova/+/961593 - reusing port binding. IMO reusing is not best approach for this edge case. I see your comment there. What do you mean by that my patch (999374) \"is closer to the corret behvior it just does nto account for the fact that we could be using a single port binding instead of multipel if your using some out of tree neutron backend like cisco aci? or calico.\"? Because this patch will work with for single port binding and also for the multiple IMO.\n\nPlease check also https://review.opendev.org/c/openstack/nova/+/978121 - what do you think about it? Also little bit different approach to try to delete destination port binding every time before creation. But I think we should do it only on the conflict to save some api calls + we should check for the port status.","commit_id":"b6b792846a76c1389142de5810552e0496ac2194"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"d2afcf811e83a0783ab97749344e28e5f8c0b75e","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Delete inactive port bindings during live migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce option live_migration_delete_inactive_bindings for the nova-conductor."},{"line_number":10,"context_line":"When this option is set to true, inactive port binding at destination host is deleted during live migration."},{"line_number":11,"context_line":"Inactive port bindings on the destination host can exist due to cleanup"},{"line_number":12,"context_line":"failures (e.g., because of neutron unavailability) during rollback"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"cdaf7290_5b4716d2","line":9,"in_reply_to":"a40a0535_8c1e50d4","updated":"2026-07-31 13:08:24.000000000","message":"So what do you suggest? Just replace CONF.live_migration_delete_inactive_bindings with True in the bind_ports_to_host call for live_migrate.py? or remove the delete_inactive_bindings parameter from the bind_ports_to_host function completely, but this would influence also cross_cell_migrate.py","commit_id":"b6b792846a76c1389142de5810552e0496ac2194"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3f55b847de9f14323b3ed85233143aa0808ef716","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Delete inactive port bindings during live migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Introduce option live_migration_delete_inactive_bindings for the nova-conductor."},{"line_number":10,"context_line":"When this option is set to true, inactive port binding at destination host is deleted during live migration."},{"line_number":11,"context_line":"Inactive port bindings on the destination host can exist due to cleanup"},{"line_number":12,"context_line":"failures (e.g., because of neutron unavailability) during rollback"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"770ab4a5_67adb0ac","line":9,"in_reply_to":"cdaf7290_5b4716d2","updated":"2026-07-31 13:50:54.000000000","message":"i think we need to make nov robust to this falure mode wihtout any config opiton.\n\ni have a very old patch to make nova more robsut to some fo the failure modes that can happen https://review.opendev.org/c/openstack/nova/+/653506\n\nhttps://bugs.launchpad.net/nova/+bug/1822884 is a slightly diffent failr mode to \nhttps://bugs.launchpad.net/nova/+bug/2125456 but we have previosly fix one fo the rolback failures as part of https://bugs.launchpad.net/nova/+bug/1788014\nhttps://review.opendev.org/c/openstack/nova/+/695900\n\nthe impoant ponit is when fixing this type of edgye case w edo not make this a cofnigurable option that a operator most opt in or out of.\n\nim not sure if \n\nhttps://review.opendev.org/c/openstack/nova/+/653506/6/nova/network/neutron.py#3750\n\nwill be sufficent ot fix your edgecase but the starting point for this shoudl be to create a functional regression test to recreate the issue\n\n7 years ago that was much much harder to do then it is today because ew dint really have the ablity to emulate live migration in our functional test but today that is very eary to do","commit_id":"b6b792846a76c1389142de5810552e0496ac2194"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":38540,"name":"Sebastian Krott","email":"sebastian.krott@gmail.com","username":"sebkro"},"change_message_id":"9bb52b313901e87dbb2d002722d866309b224ec5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0f1ef059_3cdbcf40","updated":"2026-08-04 20:20:36.000000000","message":"This appears to solve the issue for `INACTIVE` bindings with matching `vnic_type`. But I\u0027m not sure that it\u0027s necessary to be this conservative here since no valid port bindings should exist on the destination host at this stage of the migration.\n\nPlease also check https://review.opendev.org/c/openstack/nova/+/978121 for an alternative fix that\n- deletes _all_ destination port-bindings of the instance\u0027s ports (irrespective of status, etc.)\n- adds cleanup for newly created destination port-bindings in case of rollback\n- adjusts `cleanup_instance_network_on_host` to avoid redundant calls to `delete_port_binding` also for other use cases (via https://review.opendev.org/c/openstack/nova/+/978122 in the same relation chain)","commit_id":"dd7a9adb2a9b8f9c20abcc23a0d523bc9a550f71"}],"nova/network/neutron.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"36ab4d77ba63bc56c94b05679876de717377b47e","unresolved":false,"context_lines":[{"line_number":1593,"context_line":"                    client.delete_port_binding(port_id, host)"},{"line_number":1594,"context_line":"                    binding \u003d client.create_port_binding(port_id, data)[\u0027binding\u0027]"},{"line_number":1595,"context_line":"            except neutron_client_exc.NeutronClientException:"},{"line_number":1596,"context_line":"                # Something failed, so log the error and rollback any"},{"line_number":1597,"context_line":"                # successful bindings."},{"line_number":1598,"context_line":"                LOG.error(\u0027Binding failed for port %s and host %s.\u0027,"},{"line_number":1599,"context_line":"                          port_id, host, instance\u003dinstance, exc_info\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"6764c308_00d829ad","line":1596,"updated":"2026-07-31 12:06:53.000000000","message":"pep8: E501 line too long (93 \u003e 79 characters)","commit_id":"23139af11f86c196a879a999c6597507896ad659"}]}
