When a port claim was postponed (due to two gateways fighting to own a port), and if the reason to claim the port was removed (e.g. bfd status has changed from down to up on a low priority chassis), then ovn-controller was looping at 100% cpu as the port stayed in the postponed list.
Signed-off-by: Xavier Simonart <[email protected]> --- controller/binding.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/controller/binding.c b/controller/binding.c index f5091d2cf..cfc6e1ac0 100644 --- a/controller/binding.c +++ b/controller/binding.c @@ -1966,6 +1966,10 @@ consider_nonvif_lport_(const struct sbrec_port_binding *pb, remove_related_lport(pb, b_ctx_out); } + /* If port was postponed to now, and not our chassis, remove it from + * postponed ports as it should not be claimed anymore.*/ + sset_find_and_delete(b_ctx_out->postponed_ports, pb->logical_port); + if (pb->chassis == b_ctx_in->chassis_rec || is_additional_chassis(pb, b_ctx_in->chassis_rec) || if_status_is_port_claimed(b_ctx_out->if_mgr, -- 2.47.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
