Hi Ales Yes, thanks, you can drop this one. It seems we had the exact same fix for that test (except for the comments) :-)
Thanks Xavier On Tue, Sep 15, 2026 at 7:49 AM Ales Musil <[email protected]> wrote: > > > On Mon, Sep 14, 2026 at 6:10 PM Xavier Simonart via dev < > [email protected]> wrote: > >> There is a potential race condition in OVN where, if an ARP is received >> right >> before the MAC Binding threshold is reached, it updates the MAC Binding >> related >> stats flows but, before ovn-controller probes those stats, the >> mac_binding related >> flows get removed by ovn-northd as reaching the threshold. >> Hence, in that case, the MAC Binding ends up being deleted (and not >> recreated), >> despite an ARP being recently received. >> This is similar to dropping an ARP reply, in a case where ARP replies to >> multiple ARP probes were already lost. >> >> The test was sometimes hitting that case. >> This patch does not fix the ovn race condition, but reduces the >> probability of >> failures by simulating reception of ARP/NA right after ARP probes, hence >> giving >> more time to ovn-controller to probe flow-related stats before threshold >> is hit. >> >> Fixes: 47203af82aba ("mac-cache: Send broadcast re-ARP probes after a >> while.") >> Signed-off-by: Xavier Simonart <[email protected]> >> --- >> > > Hi Xavier, > > thank you for the patch, it seems we posted the same thing > at the same time. I'm also including a different fix in the patch, > would you mind taking a look at that? I will review the first > 2 of the series in the meantime. > > Regards, > Ales > > tests/ovn.at | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/tests/ovn.at b/tests/ovn.at >> index 1e108802d..f40ca1ea0 100644 >> --- a/tests/ovn.at >> +++ b/tests/ovn.at >> @@ -37738,15 +37738,15 @@ dump_arp 1 00:00:00:00:10:00 00:00:00:00:10:1b >> 10.10.10.1 10.10.10.101 00:00:00: >> dump_ns 00:00:00:00:10:1b 00:00:00:00:10:00 fd11::65 fd11::1 fd11::65 > >> ucast_v6_65.pkt >> OVS_WAIT_UNTIL([test $($PYTHON "$ovs_srcdir/utilities/ovs-pcap.in" >> hv1/vif1-tx.pcap | \ >> grep -Fc "$(cat ucast_v4_101.pkt)") -ge 2]) >> +# The neighbours answer, refreshing the rows in place (resetting >> arp_attempts). >> +v4_ts=$(fetch_column Mac_Binding timestamp ip=10.10.10.101) >> +send_garp hv1 vif1 2 00:00:00:00:10:1b 00:00:00:00:10:00 10.10.10.101 >> 10.10.10.1 >> OVS_WAIT_UNTIL([test $($PYTHON "$ovs_srcdir/utilities/ovs-pcap.in" >> hv1/vif1-tx.pcap | \ >> grep -Fc "$(cat ucast_v6_65.pkt)") -ge 2]) >> - >> -# The neighbours answer, refreshing the rows in place (resetting >> -# arp_attempts). Confirm the timestamps advanced. >> -v4_ts=$(fetch_column Mac_Binding timestamp ip=10.10.10.101) >> v6_ts=$(fetch_column Mac_Binding timestamp ip=\"fd11::65\") >> -send_garp hv1 vif1 2 00:00:00:00:10:1b 00:00:00:00:10:00 10.10.10.101 >> 10.10.10.1 >> send_na hv1 vif1 00:00:00:00:10:1b 00:00:00:00:10:00 fd11::65 fd11::1 >> + >> +# Confirm the timestamps advanced. >> OVS_WAIT_UNTIL([test $(fetch_column Mac_Binding timestamp >> ip=10.10.10.101) -gt $v4_ts]) >> OVS_WAIT_UNTIL([test $(fetch_column Mac_Binding timestamp >> ip=\"fd11::65\") -gt $v6_ts]) >> >> -- >> 2.47.1 >> >> _______________________________________________ >> dev mailing list >> [email protected] >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> >> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
