From: Numan Siddique <num...@ovn.org>

This testsuite is failing frequently in travis CI and locally when tests are 
run with "-j5".

The test case deletes the chassis row for chassis 'gw2' and expects that this
doesn't cause the chassisresident port on the master ('gw1') to not bounce as 
'gw1'
has higher priority than gw2. But since the ha chassis group has only 2 chassis,
'gw2' can claim the port momemtarily when 'gw2' chassis row is recreated back 
until
BFD session with 'gw1' is not established.

This patch changes the test assertion approach and makes sure that 'gw1' is the
owner of the chassisresident port eventually.

Signed-off-by: Numan Siddique <num...@ovn.org>
---
 tests/ovn.at | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/tests/ovn.at b/tests/ovn.at
index cb7903db8..35ffaf331 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -11033,12 +11033,26 @@ ovn-nbctl --wait=hv --timeout=3 sync
 # doesn't have the same effect because "name" is conserved, and the
 # Chassis entry is not replaced.
 
-> gw1/ovn-controller.log
-
 gw2_chassis=$(ovn-sbctl --bare --columns=_uuid find Chassis name=gw2)
 ovn-sbctl destroy Chassis $gw2_chassis
 
-OVS_WAIT_UNTIL([test 0 = `grep -c "Releasing lport" gw1/ovn-controller.log`])
+# Wait for the gw2_chassis row is recreated.
+OVS_WAIT_UNTIL([test 1 = `ovn-sbctl --bare --columns=_uuid find Chassis 
name=gw2 | wc -l`])
+
+gw1_chassis=$(ovn-sbctl --bare --columns=_uuid find Chassis name=gw1)
+gw2_chassis=$(ovn-sbctl --bare --columns=_uuid find Chassis name=gw2)
+
+# When gw2 chassis row is destroyed, it gets recreated. There
+# is a small window in which gw2 may claim the cr-outside port if
+# it has not established bfd tunnel with gw1.
+# So make sure that, cr-outside is claimed by gw1 finally.
+OVS_WAIT_WHILE(
+    [cr_outside_ch=`ovn-sbctl --bare --columns=chassis find Port_binding 
logical_port=cr-outside`
+     test $cr_outside_ch = $gw2_chassis])
+
+OVS_WAIT_UNTIL(
+    [cr_outside_ch=`ovn-sbctl --bare --columns=chassis find Port_binding 
logical_port=cr-outside`
+     test $cr_outside_ch = $gw1_chassis])
 
 OVN_CLEANUP([gw1],[gw2],[hv1])
 
-- 
2.23.0

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

Reply via email to