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
