When the test toggles add_route from true to false, the
OpenFlow routing rules are removed after --wait=hv, but
stale megaflow entries cached in the OVS datapath from
the previous successful pings may survive until the
revalidator timer fires.  The first ping packet can match
such a stale flow and get forwarded, causing an
intermittent "1 received" instead of "0 received".

Wait for datapath revalidation after the configuration
change to avoid the race.

Other system tests that toggle connectivity on and off
may suffer from the same class of issue, but this one
happens to fail more often in CI, e.g.:
https://github.com/dceara/ovn/actions/runs/26631517208/job/78481704883#step:11:6606

Assisted-by: Claude Opus 4.6, Claude Code
Signed-off-by: Dumitru Ceara <[email protected]>
---
V2:
- Addressed Ilya's comment:
  - used revalidator/wait
---
 tests/system-ovn.at | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 968a22f51e..fbb8967b86 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -14866,6 +14866,8 @@ NS_CHECK_EXEC([vm1], [ping -q -c 3 -i 0.3 -w 2 
172.18.1.12 | FORMAT_PING], \
 ])
 
 check ovn-nbctl --wait=hv set load_balancer lb0 options:add_route=false
+# Wait for revalidation of stale megaflows which may lag behind.
+check ovs-appctl revalidator/wait
 NS_CHECK_EXEC([vm1], [ping -q -c 3 -i 0.3 -w 2 172.18.1.12 | FORMAT_PING], \
 [0], [dnl
 7 packets transmitted, 0 received, 100% packet loss, time 0ms
-- 
2.54.0

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

Reply via email to