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
