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".

Purge datapath flows immediately 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]>
---
 tests/system-ovn.at | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 649e85ec1d..f5204d5e12 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -14959,6 +14959,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
+# Purge datapath flows; revalidation of stale megaflows may lag behind.
+check ovs-appctl revalidator/purge
 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