On 5/29/26 4:17 PM, Dumitru Ceara via dev wrote:
> 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

Do we actually need purge?  Is wait not enough here?
Purge is useful when you need all the latest stats to be accounted, but
it should not generally be necessary for a normal datapath flow update.

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to