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

Reply via email to