To register a chassis to ovn-sb, ovn-controller create a "name-uuid"
for the chassis, which it will send to ovn-sb. In return, ovn-sb creates
the uuid based on that "name".
Using this "name-uuid" as a uuid in a monitor request to ovn-sb results in
monitoring a non-existing chassis.
The system returns on track as soon as ovn-controller receives the chassis
update from ovn-sb, as it will then send a new monitor request to ovn-sb,
with the proper chassis uuid.
However, if some ports were already in ovn-sb when it receives the monitor 
request
with the wrong uuid, ovn-sb will notify ovn-controller to delete all those 
ports.
This cause the following sequence in ovn-controller
- notification of a new port
- deletion of that port
- notification of a new port

We now prevent sending wrong uuid to ovn-sb.

This issue was causing test "testing load-balancer template IPv6" to fail
in a flaky way, due to the following warning:
if_status|WARN|Trying to release unknown interface vm2

Signed-off-by: Xavier Simonart <[email protected]>
---
 controller/chassis.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/controller/chassis.c b/controller/chassis.c
index ce88541ba..d3c944973 100644
--- a/controller/chassis.c
+++ b/controller/chassis.c
@@ -831,7 +831,11 @@ chassis_run(struct ovsdb_idl_txn *ovnsb_idl_txn,
     }
 
     ovs_chassis_cfg_destroy(&ovs_cfg);
-    return chassis_rec;
+    if (existed) {
+        return chassis_rec;
+    } else {
+        return NULL;
+    }
 }
 
 bool
-- 
2.31.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to