diff mbox series

[ovs-dev] Fixed multiple other flaky tests

Message ID 20220330112617.3986638-1-xsimonar@redhat.com
State Accepted
Headers show
Series [ovs-dev] Fixed multiple other flaky tests | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Xavier Simonart March 30, 2022, 11:26 a.m. UTC
- options:requested-chassis for logical port
- NAT and Load Balancer flows
- 2LSs IGMP and MLD
- Dynamic neighbor between LRs
- (userspace test) conntrack TCP reset
- Dont flood fill local datapaths beyond distributed gateway port
- 1 LR with distributed router gateway port

Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
---
 tests/ovn-northd.at |  2 +-
 tests/ovn.at        | 17 ++++++++++++-----
 tests/system-ovn.at |  9 +++++++--
 3 files changed, 20 insertions(+), 8 deletions(-)

Comments

Mark Michelson April 5, 2022, 7:56 p.m. UTC | #1
Thanks a bunch Xavier!

Acked-by: Mark Michelson <mmichels@redhat.com>

On 3/30/22 07:26, Xavier Simonart wrote:
> - options:requested-chassis for logical port
> - NAT and Load Balancer flows
> - 2LSs IGMP and MLD
> - Dynamic neighbor between LRs
> - (userspace test) conntrack TCP reset
> - Dont flood fill local datapaths beyond distributed gateway port
> - 1 LR with distributed router gateway port
> 
> Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
> ---
>   tests/ovn-northd.at |  2 +-
>   tests/ovn.at        | 17 ++++++++++++-----
>   tests/system-ovn.at |  9 +++++++--
>   3 files changed, 20 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
> index d9de4aacb..c252f61a5 100644
> --- a/tests/ovn-northd.at
> +++ b/tests/ovn-northd.at
> @@ -4566,7 +4566,7 @@ check ovn-nbctl lr-nat-del ro1
>   check ovn-nbctl lr-nat-del ro2
>   
>   check ovn-nbctl --add-route lr-nat-add ro1 dnat_and_snat 10.0.0.100 192.168.1.2 vm1 00:00:00:00:00:01
> -check ovn-nbctl --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 192.168.2.2 vm2 00:00:00:00:00:02
> +check ovn-nbctl --wait=sb --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 192.168.2.2 vm2 00:00:00:00:00:02
>   
>   check_lflows 1
>   
> diff --git a/tests/ovn.at b/tests/ovn.at
> index 0c2fe9f97..2d13a1cb2 100644
> --- a/tests/ovn.at
> +++ b/tests/ovn.at
> @@ -76,6 +76,12 @@ m4_define([OVN_CHECK_PACKETS_REMOVE_BROADCAST],
>   m4_define([OVN_CHECK_PACKETS_CONTAIN],
>     [ovn_wait_packets__ "$1" "$2" "__file__:__line__"])
>   
> +# OVN_CHECK_PACKETS_UNIQ succeeds if some expected packets are duplicated.
> +# It fails if unexpected packets are received.
> +m4_define([OVN_CHECK_PACKETS_UNIQ],
> +  [ovn_check_packets__ "$1" "$2" "__file__:__line__"
> +   AT_CHECK([sort $rcv_text | uniq], [0], [expout])])
> +
>   AT_BANNER([OVN components])
>   
>   AT_SETUP([lexer])
> @@ -11418,7 +11424,7 @@ echo $outside_ip
>   test_arp 3 1 f00000010204 $outside_ip $rtr_ip
>   
>   # Now check the packets actually received against the ones expected.
> -OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> +OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
>   
>   # Send ip packet between foo1 and outside1
>   src_mac="f00000010203"
> @@ -11428,7 +11434,7 @@ dst_ip=`ip_to_hex 172 16 1 3`
>   packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
>   
>   # Now check the packets actually received against the ones expected.
> -OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> +OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
>   
>   # Now add bridge-mappings on hv2, which should make everything work
>   as hv2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
> @@ -11449,7 +11455,7 @@ exp_gw_ip_garp=ffffffffffff00000201020308060001080006040001000002010203ac1001010
>   echo $exp_gw_ip_garp >> hv3-vif1.expected
>   
>   # Now check the packets actually received against the ones expected.
> -OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> +OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
>   
>   # Send ip packet between foo1 and outside1
>   src_mac="f00000010203"
> @@ -13838,7 +13844,7 @@ as hv1
>   ovs-vsctl set interface hv1-vif0 external-ids:iface-id=lsp0
>   
>   OVS_WAIT_UNTIL([test 1 = $(grep -c "Claiming lport lsp0" hv1/ovn-controller.log)])
> -check_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
> +wait_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
>   
>   # (4) Chassis hv1 should add flows in OFTABLE_PHY_TO_LOG and OFTABLE_LOG_TO_PHY tables.
>   as hv1 ovs-ofctl dump-flows br-int
> @@ -25636,7 +25642,6 @@ src_ip=`ip_to_hex 10 0 1 2`
>   dst_ip=`ip_to_hex 10 0 2 2`
>   packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
>   as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
> -as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
>   
>   # Packet to Expect at p2
>   src_mac="000000000201"
> @@ -25646,6 +25651,7 @@ dst_ip=`ip_to_hex 10 0 2 2`
>   echo "${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000" > expected
>   
>   OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
> +as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
>   
>   # MAC binding entry should have generated
>   AT_CHECK([ovn-sbctl find mac ip=10.0.0.2 mac='"00:00:00:00:03:02"' logical_port=lrp-r1-join | grep 10\.0\.0\.2], [0], [ignore], [])
> @@ -29553,6 +29559,7 @@ AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | grep 10.0.1.2], [0], [ig
>   # doesn't remove.)
>   check ovn-nbctl --wait=hv lrp-set-gateway-chassis lrp_lr_ls1 hv1 1
>   as hv2 check ovn-appctl -t ovn-controller recompute
> +ovn-nbctl --wait=hv sync
>   AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | grep 10.0.1.2], [1])
>   
>   # Enable dnat_and_snat on lr, and now hv2 should see flows for lsp1.
> diff --git a/tests/system-ovn.at b/tests/system-ovn.at
> index 5d90be1c9..2de21e9f5 100644
> --- a/tests/system-ovn.at
> +++ b/tests/system-ovn.at
> @@ -4174,13 +4174,17 @@ start_daemon ovn-controller
>   #   - subnet 20.0.0.0/8
>   #   - 2 port (sw2-p1 - sw2-p2)
>   #   - IGMP Querier from 20.0.0.254
> -
>   ovn-nbctl ls-add sw1
>   ovn-nbctl ls-add sw2
>   
>   for i in `seq 1 2`
>   do
>       ADD_NAMESPACES(sw1-p$i)
> +# Only send 1 membership report as second one might be received after flushing IGMP groups
> +# causing test to fail
> +    NS_CHECK_EXEC([sw1-p$i], [sysctl -w net.ipv4.igmp_qrv=1], [0], [dnl
> +net.ipv4.igmp_qrv = 1
> +])
>       ADD_VETH(sw1-p$i, sw1-p$i, br-int, "10.0.0.$i/24", "00:00:00:00:01:0$i", \
>               "10.0.0.254")
>       ovn-nbctl lsp-add sw1 sw1-p$i \
> @@ -4200,6 +4204,7 @@ done
>   ovn-nbctl set Logical_Switch sw1 other_config:mcast_querier="false"
>   ovn-nbctl set Logical_Switch sw1 other_config:mcast_snoop="true"
>   
> +
>   group_v4="239.0.1.68"
>   # Inject IGMP Join for v4 group on sw1-p1.
>   NS_CHECK_EXEC([sw1-p1], [ip addr add dev sw1-p1 ${group_v4}/32 autojoin], [0])
> @@ -5414,7 +5419,7 @@ AT_CHECK([
>       ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state=ESTABLISHED -c)
>       test $ct_est_count -eq 0
>   
> -    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state=CLOS -c)
> +    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state='CLOS\|TIME_WAIT' -c)
>       test $ct_est_count -eq 1
>   ])
>   
>
Numan Siddique April 6, 2022, 2:19 p.m. UTC | #2
On Tue, Apr 5, 2022 at 3:56 PM Mark Michelson <mmichels@redhat.com> wrote:
>
> Thanks a bunch Xavier!
>
> Acked-by: Mark Michelson <mmichels@redhat.com>

Thanks for fixing this.  I applied this patch to the main branch.

Numan

>
> On 3/30/22 07:26, Xavier Simonart wrote:
> > - options:requested-chassis for logical port
> > - NAT and Load Balancer flows
> > - 2LSs IGMP and MLD
> > - Dynamic neighbor between LRs
> > - (userspace test) conntrack TCP reset
> > - Dont flood fill local datapaths beyond distributed gateway port
> > - 1 LR with distributed router gateway port
> >
> > Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
> > ---
> >   tests/ovn-northd.at |  2 +-
> >   tests/ovn.at        | 17 ++++++++++++-----
> >   tests/system-ovn.at |  9 +++++++--
> >   3 files changed, 20 insertions(+), 8 deletions(-)
> >
> > diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
> > index d9de4aacb..c252f61a5 100644
> > --- a/tests/ovn-northd.at
> > +++ b/tests/ovn-northd.at
> > @@ -4566,7 +4566,7 @@ check ovn-nbctl lr-nat-del ro1
> >   check ovn-nbctl lr-nat-del ro2
> >
> >   check ovn-nbctl --add-route lr-nat-add ro1 dnat_and_snat 10.0.0.100 192.168.1.2 vm1 00:00:00:00:00:01
> > -check ovn-nbctl --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 192.168.2.2 vm2 00:00:00:00:00:02
> > +check ovn-nbctl --wait=sb --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 192.168.2.2 vm2 00:00:00:00:00:02
> >
> >   check_lflows 1
> >
> > diff --git a/tests/ovn.at b/tests/ovn.at
> > index 0c2fe9f97..2d13a1cb2 100644
> > --- a/tests/ovn.at
> > +++ b/tests/ovn.at
> > @@ -76,6 +76,12 @@ m4_define([OVN_CHECK_PACKETS_REMOVE_BROADCAST],
> >   m4_define([OVN_CHECK_PACKETS_CONTAIN],
> >     [ovn_wait_packets__ "$1" "$2" "__file__:__line__"])
> >
> > +# OVN_CHECK_PACKETS_UNIQ succeeds if some expected packets are duplicated.
> > +# It fails if unexpected packets are received.
> > +m4_define([OVN_CHECK_PACKETS_UNIQ],
> > +  [ovn_check_packets__ "$1" "$2" "__file__:__line__"
> > +   AT_CHECK([sort $rcv_text | uniq], [0], [expout])])
> > +
> >   AT_BANNER([OVN components])
> >
> >   AT_SETUP([lexer])
> > @@ -11418,7 +11424,7 @@ echo $outside_ip
> >   test_arp 3 1 f00000010204 $outside_ip $rtr_ip
> >
> >   # Now check the packets actually received against the ones expected.
> > -OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> > +OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> >
> >   # Send ip packet between foo1 and outside1
> >   src_mac="f00000010203"
> > @@ -11428,7 +11434,7 @@ dst_ip=`ip_to_hex 172 16 1 3`
> >   packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
> >
> >   # Now check the packets actually received against the ones expected.
> > -OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> > +OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> >
> >   # Now add bridge-mappings on hv2, which should make everything work
> >   as hv2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
> > @@ -11449,7 +11455,7 @@ exp_gw_ip_garp=ffffffffffff00000201020308060001080006040001000002010203ac1001010
> >   echo $exp_gw_ip_garp >> hv3-vif1.expected
> >
> >   # Now check the packets actually received against the ones expected.
> > -OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> > +OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
> >
> >   # Send ip packet between foo1 and outside1
> >   src_mac="f00000010203"
> > @@ -13838,7 +13844,7 @@ as hv1
> >   ovs-vsctl set interface hv1-vif0 external-ids:iface-id=lsp0
> >
> >   OVS_WAIT_UNTIL([test 1 = $(grep -c "Claiming lport lsp0" hv1/ovn-controller.log)])
> > -check_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
> > +wait_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
> >
> >   # (4) Chassis hv1 should add flows in OFTABLE_PHY_TO_LOG and OFTABLE_LOG_TO_PHY tables.
> >   as hv1 ovs-ofctl dump-flows br-int
> > @@ -25636,7 +25642,6 @@ src_ip=`ip_to_hex 10 0 1 2`
> >   dst_ip=`ip_to_hex 10 0 2 2`
> >   packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
> >   as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
> > -as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
> >
> >   # Packet to Expect at p2
> >   src_mac="000000000201"
> > @@ -25646,6 +25651,7 @@ dst_ip=`ip_to_hex 10 0 2 2`
> >   echo "${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000" > expected
> >
> >   OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
> > +as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
> >
> >   # MAC binding entry should have generated
> >   AT_CHECK([ovn-sbctl find mac ip=10.0.0.2 mac='"00:00:00:00:03:02"' logical_port=lrp-r1-join | grep 10\.0\.0\.2], [0], [ignore], [])
> > @@ -29553,6 +29559,7 @@ AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | grep 10.0.1.2], [0], [ig
> >   # doesn't remove.)
> >   check ovn-nbctl --wait=hv lrp-set-gateway-chassis lrp_lr_ls1 hv1 1
> >   as hv2 check ovn-appctl -t ovn-controller recompute
> > +ovn-nbctl --wait=hv sync
> >   AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | grep 10.0.1.2], [1])
> >
> >   # Enable dnat_and_snat on lr, and now hv2 should see flows for lsp1.
> > diff --git a/tests/system-ovn.at b/tests/system-ovn.at
> > index 5d90be1c9..2de21e9f5 100644
> > --- a/tests/system-ovn.at
> > +++ b/tests/system-ovn.at
> > @@ -4174,13 +4174,17 @@ start_daemon ovn-controller
> >   #   - subnet 20.0.0.0/8
> >   #   - 2 port (sw2-p1 - sw2-p2)
> >   #   - IGMP Querier from 20.0.0.254
> > -
> >   ovn-nbctl ls-add sw1
> >   ovn-nbctl ls-add sw2
> >
> >   for i in `seq 1 2`
> >   do
> >       ADD_NAMESPACES(sw1-p$i)
> > +# Only send 1 membership report as second one might be received after flushing IGMP groups
> > +# causing test to fail
> > +    NS_CHECK_EXEC([sw1-p$i], [sysctl -w net.ipv4.igmp_qrv=1], [0], [dnl
> > +net.ipv4.igmp_qrv = 1
> > +])
> >       ADD_VETH(sw1-p$i, sw1-p$i, br-int, "10.0.0.$i/24", "00:00:00:00:01:0$i", \
> >               "10.0.0.254")
> >       ovn-nbctl lsp-add sw1 sw1-p$i \
> > @@ -4200,6 +4204,7 @@ done
> >   ovn-nbctl set Logical_Switch sw1 other_config:mcast_querier="false"
> >   ovn-nbctl set Logical_Switch sw1 other_config:mcast_snoop="true"
> >
> > +
> >   group_v4="239.0.1.68"
> >   # Inject IGMP Join for v4 group on sw1-p1.
> >   NS_CHECK_EXEC([sw1-p1], [ip addr add dev sw1-p1 ${group_v4}/32 autojoin], [0])
> > @@ -5414,7 +5419,7 @@ AT_CHECK([
> >       ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state=ESTABLISHED -c)
> >       test $ct_est_count -eq 0
> >
> > -    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state=CLOS -c)
> > +    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state='CLOS\|TIME_WAIT' -c)
> >       test $ct_est_count -eq 1
> >   ])
> >
> >
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
diff mbox series

Patch

diff --git a/tests/ovn-northd.at b/tests/ovn-northd.at
index d9de4aacb..c252f61a5 100644
--- a/tests/ovn-northd.at
+++ b/tests/ovn-northd.at
@@ -4566,7 +4566,7 @@  check ovn-nbctl lr-nat-del ro1
 check ovn-nbctl lr-nat-del ro2
 
 check ovn-nbctl --add-route lr-nat-add ro1 dnat_and_snat 10.0.0.100 192.168.1.2 vm1 00:00:00:00:00:01
-check ovn-nbctl --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 192.168.2.2 vm2 00:00:00:00:00:02
+check ovn-nbctl --wait=sb --add-route lr-nat-add ro2 dnat_and_snat 20.0.0.100 192.168.2.2 vm2 00:00:00:00:00:02
 
 check_lflows 1
 
diff --git a/tests/ovn.at b/tests/ovn.at
index 0c2fe9f97..2d13a1cb2 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -76,6 +76,12 @@  m4_define([OVN_CHECK_PACKETS_REMOVE_BROADCAST],
 m4_define([OVN_CHECK_PACKETS_CONTAIN],
   [ovn_wait_packets__ "$1" "$2" "__file__:__line__"])
 
+# OVN_CHECK_PACKETS_UNIQ succeeds if some expected packets are duplicated.
+# It fails if unexpected packets are received.
+m4_define([OVN_CHECK_PACKETS_UNIQ],
+  [ovn_check_packets__ "$1" "$2" "__file__:__line__"
+   AT_CHECK([sort $rcv_text | uniq], [0], [expout])])
+
 AT_BANNER([OVN components])
 
 AT_SETUP([lexer])
@@ -11418,7 +11424,7 @@  echo $outside_ip
 test_arp 3 1 f00000010204 $outside_ip $rtr_ip
 
 # Now check the packets actually received against the ones expected.
-OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
+OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
 
 # Send ip packet between foo1 and outside1
 src_mac="f00000010203"
@@ -11428,7 +11434,7 @@  dst_ip=`ip_to_hex 172 16 1 3`
 packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
 
 # Now check the packets actually received against the ones expected.
-OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
+OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
 
 # Now add bridge-mappings on hv2, which should make everything work
 as hv2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
@@ -11449,7 +11455,7 @@  exp_gw_ip_garp=ffffffffffff00000201020308060001080006040001000002010203ac1001010
 echo $exp_gw_ip_garp >> hv3-vif1.expected
 
 # Now check the packets actually received against the ones expected.
-OVN_CHECK_PACKETS([hv3/vif1-tx.pcap], [hv3-vif1.expected])
+OVN_CHECK_PACKETS_UNIQ([hv3/vif1-tx.pcap], [hv3-vif1.expected])
 
 # Send ip packet between foo1 and outside1
 src_mac="f00000010203"
@@ -13838,7 +13844,7 @@  as hv1
 ovs-vsctl set interface hv1-vif0 external-ids:iface-id=lsp0
 
 OVS_WAIT_UNTIL([test 1 = $(grep -c "Claiming lport lsp0" hv1/ovn-controller.log)])
-check_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
+wait_column "$hv1_uuid" Port_Binding chassis logical_port=lsp0
 
 # (4) Chassis hv1 should add flows in OFTABLE_PHY_TO_LOG and OFTABLE_LOG_TO_PHY tables.
 as hv1 ovs-ofctl dump-flows br-int
@@ -25636,7 +25642,6 @@  src_ip=`ip_to_hex 10 0 1 2`
 dst_ip=`ip_to_hex 10 0 2 2`
 packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
 as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
-as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
 
 # Packet to Expect at p2
 src_mac="000000000201"
@@ -25646,6 +25651,7 @@  dst_ip=`ip_to_hex 10 0 2 2`
 echo "${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000" > expected
 
 OVN_CHECK_PACKETS([hv2/vif1-tx.pcap], [expected])
+as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet
 
 # MAC binding entry should have generated
 AT_CHECK([ovn-sbctl find mac ip=10.0.0.2 mac='"00:00:00:00:03:02"' logical_port=lrp-r1-join | grep 10\.0\.0\.2], [0], [ignore], [])
@@ -29553,6 +29559,7 @@  AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | grep 10.0.1.2], [0], [ig
 # doesn't remove.)
 check ovn-nbctl --wait=hv lrp-set-gateway-chassis lrp_lr_ls1 hv1 1
 as hv2 check ovn-appctl -t ovn-controller recompute
+ovn-nbctl --wait=hv sync
 AT_CHECK([as hv2 ovs-ofctl dump-flows br-int table=26 | grep 10.0.1.2], [1])
 
 # Enable dnat_and_snat on lr, and now hv2 should see flows for lsp1.
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 5d90be1c9..2de21e9f5 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -4174,13 +4174,17 @@  start_daemon ovn-controller
 #   - subnet 20.0.0.0/8
 #   - 2 port (sw2-p1 - sw2-p2)
 #   - IGMP Querier from 20.0.0.254
-
 ovn-nbctl ls-add sw1
 ovn-nbctl ls-add sw2
 
 for i in `seq 1 2`
 do
     ADD_NAMESPACES(sw1-p$i)
+# Only send 1 membership report as second one might be received after flushing IGMP groups
+# causing test to fail
+    NS_CHECK_EXEC([sw1-p$i], [sysctl -w net.ipv4.igmp_qrv=1], [0], [dnl
+net.ipv4.igmp_qrv = 1
+])
     ADD_VETH(sw1-p$i, sw1-p$i, br-int, "10.0.0.$i/24", "00:00:00:00:01:0$i", \
             "10.0.0.254")
     ovn-nbctl lsp-add sw1 sw1-p$i \
@@ -4200,6 +4204,7 @@  done
 ovn-nbctl set Logical_Switch sw1 other_config:mcast_querier="false"
 ovn-nbctl set Logical_Switch sw1 other_config:mcast_snoop="true"
 
+
 group_v4="239.0.1.68"
 # Inject IGMP Join for v4 group on sw1-p1.
 NS_CHECK_EXEC([sw1-p1], [ip addr add dev sw1-p1 ${group_v4}/32 autojoin], [0])
@@ -5414,7 +5419,7 @@  AT_CHECK([
     ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state=ESTABLISHED -c)
     test $ct_est_count -eq 0
 
-    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state=CLOS -c)
+    ct_est_count=$(ovs-appctl dpctl/dump-conntrack | grep 10.0.0.10 | grep state='CLOS\|TIME_WAIT' -c)
     test $ct_est_count -eq 1
 ])