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
