The chassis_run code didn't take into account the scenario when the
system-id was changed in the Open_vSwitch table. Due to this the code
was trying to insert a new Chassis record in the OVN_Southbound DB with
the same Encaps as the previous Chassis record. The transaction used
to insert the new records was aborting due to the ["type", "ip"]
index constraint violation as we were creating new Encap entries with
the same "type" and "ip" as the old ones.

This series:
1. introduces a (partial) fix for the reported issue by storing in
ovn-controller memory the last successfully configured chassis-id.
2. refactors the code in chassis.c to abstract out the string
processing and make available the ovs configuration to the code.
that looks up stale chassis entries in the OVN_Southbound DB
3. completes the fix at point 1 above by taking care of the
scenario when ovn-controller restarts after stopping forcefully
(e.g., due to a crash) and the OVS system-id has changed in the
meantime.

Dumitru Ceara (3):
      ovn-controller: Fix chassis ovn-sbdb record init
      ovn-controller: Refactor chassis.c to abstract the string parsing
      ovn-controller: Update stale chassis entry at init


 ovn/controller/chassis.c        |  676 +++++++++++++++++++++++++++------------
 ovn/controller/chassis.h        |    2 
 ovn/controller/ovn-controller.c |   26 +-
 tests/ovn-controller.at         |    9 +
 4 files changed, 501 insertions(+), 212 deletions(-)


---
v2: rebase
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to