Message ID | 20230420162300.146780-1-xsimonar@redhat.com |
---|---|
State | Accepted |
Headers | show |
Series | [ovs-dev] tests: fix "load balancing affinity sessions - IPv4 and IPv6" | expand |
Context | Check | Description |
---|---|---|
ovsrobot/apply-robot | success | apply and check: success |
ovsrobot/github-robot-_ovn-kubernetes | success | github build: passed |
ovsrobot/github-robot-_Build_and_Test | fail | github build: failed |
On Thu, Apr 20, 2023 at 6:23 PM Xavier Simonart <xsimonar@redhat.com> wrote: > The tests were randomly failing as there is no guarentee that > 15 nc will reach different load balancers. > Also, running 15 nc made the test quite slow. > Fixed by running loops of 5 nc, and then checking results. > Test duration decreased by 15 to 20 seconds. > > Signed-off-by: Xavier Simonart <xsimonar@redhat.com> > --- > tests/system-ovn-kmod.at | 112 +++++++++++++++++++-------------------- > 1 file changed, 56 insertions(+), 56 deletions(-) > > diff --git a/tests/system-ovn-kmod.at b/tests/system-ovn-kmod.at > index 981cc598c..e54b458fb 100644 > --- a/tests/system-ovn-kmod.at > +++ b/tests/system-ovn-kmod.at > @@ -332,14 +332,14 @@ OVS_WAIT_UNTIL([ovs-ofctl -O OpenFlow13 dump-groups > br-int | \ > grep 'nat(dst=192.168.2.2:80)']) > > dnl Should work with the virtual IP address through NAT > -for i in $(seq 1 15); do > - echo Request $i > - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.100 8080]) > -done > - > -dnl Each server should have at least one connection. > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([ > + for i in $(seq 1 5); do > + NS_EXEC([alice1], [nc -z 172.16.1.100 8080]) > + done > + > + dnl Each server should have at least one connection. > + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | \ > + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > ]) > @@ -390,15 +390,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff > ovn-nbctl lr-lb-add R2 lb11-no-aff > > # check we use both backends > -for i in $(seq 1 15); do > - echo Request $i > - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.101 8080]) > - ovs-ofctl del-flows br-int table=78 > -done > - > -dnl Each server should have at least one connection. > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([ > + for i in $(seq 1 5); do > + NS_EXEC([alice1], [nc -z 172.16.1.101 8080]) > + ovs-ofctl del-flows br-int table=78 > + done > + > + dnl Each server should have at least one connection. > + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | \ > + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > ]) > @@ -447,15 +447,15 @@ ovn-nbctl ls-lb-add foo lb30-no-aff > # Flush conntrack entries for easier output parsing of next test. > AT_CHECK([ovs-appctl dpctl/flush-conntrack]) > > -for i in $(seq 1 15); do > - echo Request $i > - NS_CHECK_EXEC([foo1], [nc -z 192.168.2.101 8080]) > - ovs-ofctl del-flows br-int table=78 > -done > +OVS_WAIT_FOR_OUTPUT([ > + for i in $(seq 1 5); do > + NS_EXEC([foo1], [nc -z 192.168.2.101 8080]) > + ovs-ofctl del-flows br-int table=78 > + done > > -dnl Each server should have at least one connection. > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > + dnl Each server should have at least one connection. > + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | \ > + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > ]) > @@ -631,14 +631,14 @@ NETNS_DAEMONIZE([foo1], [nc -l -k fd11::2 80], > [nc-foo1.pid]) > NETNS_DAEMONIZE([bar1], [nc -l -k fd12::2 80], [nc-bar1.pid]) > > dnl Should work with the virtual IP address through NAT > -for i in $(seq 1 15); do > - echo Request $i > - NS_CHECK_EXEC([alice1], [nc -z fd30::1 8080]) > -done > - > -dnl Each server should have at least one connection. > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v > fe80 | > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([ > + for i in $(seq 1 5); do > + NS_EXEC([alice1], [nc -z fd30::1 8080]) > + done > + > + dnl Each server should have at least one connection. > + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v fe80 | > \ > + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > ]) > @@ -690,15 +690,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff > ovn-nbctl lr-lb-add R2 lb11-no-aff > > # check we use both backends > -for i in $(seq 1 15); do > - echo Request $i > - NS_CHECK_EXEC([alice1], [nc -z fd30::2 8080]) > - ovs-ofctl del-flows br-int table=78 > -done > - > -dnl Each server should have at least one connection. > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v > fe80 | > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > +OVS_WAIT_FOR_OUTPUT([ > + for i in $(seq 1 5); do > + NS_EXEC([alice1], [nc -z fd30::2 8080]) > + ovs-ofctl del-flows br-int table=78 > + done > + > + dnl Each server should have at least one connection. > + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v fe80 | > \ > + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > ]) > @@ -745,14 +745,14 @@ ovn-nbctl ls-lb-add foo lb30 > ovn-nbctl ls-lb-add foo lb3-no-aff > ovn-nbctl ls-lb-add foo lb30-no-aff > > -for i in $(seq 1 15); do > - echo Request $i > - NS_CHECK_EXEC([foo1], [nc -z fd12::b 8080]) > - ovs-ofctl del-flows br-int table=78 > -done > +OVS_WAIT_FOR_OUTPUT([ > + for i in $(seq 1 5); do > + NS_EXEC([foo1], [nc -z fd12::b 8080]) > + ovs-ofctl del-flows br-int table=78 > + done > > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v > fe80 | > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v fe80 | > \ > + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > ]) > @@ -777,14 +777,14 @@ ovn-nbctl lr-lb-add R1 lb40-no-aff > # Flush conntrack entries for easier output parsing of next test. > AT_CHECK([ovs-appctl dpctl/flush-conntrack]) > > -for i in $(seq 1 15); do > - echo Request $i > - NS_CHECK_EXEC([foo1], [nc -z fd11::a 8080]) > -done > +OVS_WAIT_FOR_OUTPUT([ > + for i in $(seq 1 5); do > + NS_EXEC([foo1], [nc -z fd11::a 8080]) > + done > > -dnl Each server should have at least one connection. > -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v > fe80 | > -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > + dnl Each server should have at least one connection. > + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v fe80 | > \ > + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl > > tcp,orig=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > > tcp,orig=(src=fd11::2,dst=fd11::a,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) > > tcp,orig=(src=fd11::b,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) > -- > 2.31.1 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > Looks good to me, thanks. Acked-by: Ales Musil <amusil@redhat.com>
Thanks Xavier and Ales. I applied the change to main. On 4/21/23 04:05, Ales Musil wrote: > On Thu, Apr 20, 2023 at 6:23 PM Xavier Simonart <xsimonar@redhat.com> wrote: > >> The tests were randomly failing as there is no guarentee that >> 15 nc will reach different load balancers. >> Also, running 15 nc made the test quite slow. >> Fixed by running loops of 5 nc, and then checking results. >> Test duration decreased by 15 to 20 seconds. >> >> Signed-off-by: Xavier Simonart <xsimonar@redhat.com> >> --- >> tests/system-ovn-kmod.at | 112 +++++++++++++++++++-------------------- >> 1 file changed, 56 insertions(+), 56 deletions(-) >> >> diff --git a/tests/system-ovn-kmod.at b/tests/system-ovn-kmod.at >> index 981cc598c..e54b458fb 100644 >> --- a/tests/system-ovn-kmod.at >> +++ b/tests/system-ovn-kmod.at >> @@ -332,14 +332,14 @@ OVS_WAIT_UNTIL([ovs-ofctl -O OpenFlow13 dump-groups >> br-int | \ >> grep 'nat(dst=192.168.2.2:80)']) >> >> dnl Should work with the virtual IP address through NAT >> -for i in $(seq 1 15); do >> - echo Request $i >> - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.100 8080]) >> -done >> - >> -dnl Each server should have at least one connection. >> -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | >> -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> +OVS_WAIT_FOR_OUTPUT([ >> + for i in $(seq 1 5); do >> + NS_EXEC([alice1], [nc -z 172.16.1.100 8080]) >> + done >> + >> + dnl Each server should have at least one connection. >> + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | \ >> + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> >> tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> ]) >> @@ -390,15 +390,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff >> ovn-nbctl lr-lb-add R2 lb11-no-aff >> >> # check we use both backends >> -for i in $(seq 1 15); do >> - echo Request $i >> - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.101 8080]) >> - ovs-ofctl del-flows br-int table=78 >> -done >> - >> -dnl Each server should have at least one connection. >> -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | >> -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> +OVS_WAIT_FOR_OUTPUT([ >> + for i in $(seq 1 5); do >> + NS_EXEC([alice1], [nc -z 172.16.1.101 8080]) >> + ovs-ofctl del-flows br-int table=78 >> + done >> + >> + dnl Each server should have at least one connection. >> + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | \ >> + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> >> tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> ]) >> @@ -447,15 +447,15 @@ ovn-nbctl ls-lb-add foo lb30-no-aff >> # Flush conntrack entries for easier output parsing of next test. >> AT_CHECK([ovs-appctl dpctl/flush-conntrack]) >> >> -for i in $(seq 1 15); do >> - echo Request $i >> - NS_CHECK_EXEC([foo1], [nc -z 192.168.2.101 8080]) >> - ovs-ofctl del-flows br-int table=78 >> -done >> +OVS_WAIT_FOR_OUTPUT([ >> + for i in $(seq 1 5); do >> + NS_EXEC([foo1], [nc -z 192.168.2.101 8080]) >> + ovs-ofctl del-flows br-int table=78 >> + done >> >> -dnl Each server should have at least one connection. >> -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | >> -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> + dnl Each server should have at least one connection. >> + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | \ >> + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> >> tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> ]) >> @@ -631,14 +631,14 @@ NETNS_DAEMONIZE([foo1], [nc -l -k fd11::2 80], >> [nc-foo1.pid]) >> NETNS_DAEMONIZE([bar1], [nc -l -k fd12::2 80], [nc-bar1.pid]) >> >> dnl Should work with the virtual IP address through NAT >> -for i in $(seq 1 15); do >> - echo Request $i >> - NS_CHECK_EXEC([alice1], [nc -z fd30::1 8080]) >> -done >> - >> -dnl Each server should have at least one connection. >> -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v >> fe80 | >> -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> +OVS_WAIT_FOR_OUTPUT([ >> + for i in $(seq 1 5); do >> + NS_EXEC([alice1], [nc -z fd30::1 8080]) >> + done >> + >> + dnl Each server should have at least one connection. >> + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v fe80 | >> \ >> + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> >> tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> ]) >> @@ -690,15 +690,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff >> ovn-nbctl lr-lb-add R2 lb11-no-aff >> >> # check we use both backends >> -for i in $(seq 1 15); do >> - echo Request $i >> - NS_CHECK_EXEC([alice1], [nc -z fd30::2 8080]) >> - ovs-ofctl del-flows br-int table=78 >> -done >> - >> -dnl Each server should have at least one connection. >> -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v >> fe80 | >> -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> +OVS_WAIT_FOR_OUTPUT([ >> + for i in $(seq 1 5); do >> + NS_EXEC([alice1], [nc -z fd30::2 8080]) >> + ovs-ofctl del-flows br-int table=78 >> + done >> + >> + dnl Each server should have at least one connection. >> + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v fe80 | >> \ >> + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> >> tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> ]) >> @@ -745,14 +745,14 @@ ovn-nbctl ls-lb-add foo lb30 >> ovn-nbctl ls-lb-add foo lb3-no-aff >> ovn-nbctl ls-lb-add foo lb30-no-aff >> >> -for i in $(seq 1 15); do >> - echo Request $i >> - NS_CHECK_EXEC([foo1], [nc -z fd12::b 8080]) >> - ovs-ofctl del-flows br-int table=78 >> -done >> +OVS_WAIT_FOR_OUTPUT([ >> + for i in $(seq 1 5); do >> + NS_EXEC([foo1], [nc -z fd12::b 8080]) >> + ovs-ofctl del-flows br-int table=78 >> + done >> >> -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v >> fe80 | >> -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v fe80 | >> \ >> + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> >> tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> ]) >> @@ -777,14 +777,14 @@ ovn-nbctl lr-lb-add R1 lb40-no-aff >> # Flush conntrack entries for easier output parsing of next test. >> AT_CHECK([ovs-appctl dpctl/flush-conntrack]) >> >> -for i in $(seq 1 15); do >> - echo Request $i >> - NS_CHECK_EXEC([foo1], [nc -z fd11::a 8080]) >> -done >> +OVS_WAIT_FOR_OUTPUT([ >> + for i in $(seq 1 5); do >> + NS_EXEC([foo1], [nc -z fd11::a 8080]) >> + done >> >> -dnl Each server should have at least one connection. >> -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v >> fe80 | >> -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> + dnl Each server should have at least one connection. >> + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v fe80 | >> \ >> + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl >> >> tcp,orig=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=fd11::2,dst=fd11::a,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) >> >> tcp,orig=(src=fd11::b,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) >> -- >> 2.31.1 >> >> _______________________________________________ >> dev mailing list >> dev@openvswitch.org >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> >> > Looks good to me, thanks. > > Acked-by: Ales Musil <amusil@redhat.com> >
diff --git a/tests/system-ovn-kmod.at b/tests/system-ovn-kmod.at index 981cc598c..e54b458fb 100644 --- a/tests/system-ovn-kmod.at +++ b/tests/system-ovn-kmod.at @@ -332,14 +332,14 @@ OVS_WAIT_UNTIL([ovs-ofctl -O OpenFlow13 dump-groups br-int | \ grep 'nat(dst=192.168.2.2:80)']) dnl Should work with the virtual IP address through NAT -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.100 8080]) -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z 172.16.1.100 8080]) + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.100) | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=172.16.1.2,dst=172.16.1.100,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -390,15 +390,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff ovn-nbctl lr-lb-add R2 lb11-no-aff # check we use both backends -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z 172.16.1.101 8080]) - ovs-ofctl del-flows br-int table=78 -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z 172.16.1.101 8080]) + ovs-ofctl del-flows br-int table=78 + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.1.101) | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.1.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=172.16.1.2,dst=172.16.1.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=172.16.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -447,15 +447,15 @@ ovn-nbctl ls-lb-add foo lb30-no-aff # Flush conntrack entries for easier output parsing of next test. AT_CHECK([ovs-appctl dpctl/flush-conntrack]) -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([foo1], [nc -z 192.168.2.101 8080]) - ovs-ofctl del-flows br-int table=78 -done +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([foo1], [nc -z 192.168.2.101 8080]) + ovs-ofctl del-flows br-int table=78 + done -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(192.168.2.101) | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.2,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=192.168.1.2,dst=192.168.2.101,sport=<cleared>,dport=<cleared>),reply=(src=192.168.2.3,dst=192.168.1.2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -631,14 +631,14 @@ NETNS_DAEMONIZE([foo1], [nc -l -k fd11::2 80], [nc-foo1.pid]) NETNS_DAEMONIZE([bar1], [nc -l -k fd12::2 80], [nc-bar1.pid]) dnl Should work with the virtual IP address through NAT -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z fd30::1 8080]) -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z fd30::1 8080]) + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::1) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd72::2,dst=fd30::1,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -690,15 +690,15 @@ ovn-nbctl lr-lb-add R2 lb1-no-aff ovn-nbctl lr-lb-add R2 lb11-no-aff # check we use both backends -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([alice1], [nc -z fd30::2 8080]) - ovs-ofctl del-flows br-int table=78 -done - -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([alice1], [nc -z fd30::2 8080]) + ovs-ofctl del-flows br-int table=78 + done + + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd30::2) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd72::2,dst=fd30::2,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd72::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -745,14 +745,14 @@ ovn-nbctl ls-lb-add foo lb30 ovn-nbctl ls-lb-add foo lb3-no-aff ovn-nbctl ls-lb-add foo lb30-no-aff -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([foo1], [nc -z fd12::b 8080]) - ovs-ofctl del-flows br-int table=78 -done +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([foo1], [nc -z fd12::b 8080]) + ovs-ofctl del-flows br-int table=78 + done -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd12::b) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd11::2,dst=fd12::b,sport=<cleared>,dport=<cleared>),reply=(src=fd12::3,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) ]) @@ -777,14 +777,14 @@ ovn-nbctl lr-lb-add R1 lb40-no-aff # Flush conntrack entries for easier output parsing of next test. AT_CHECK([ovs-appctl dpctl/flush-conntrack]) -for i in $(seq 1 15); do - echo Request $i - NS_CHECK_EXEC([foo1], [nc -z fd11::a 8080]) -done +OVS_WAIT_FOR_OUTPUT([ + for i in $(seq 1 5); do + NS_EXEC([foo1], [nc -z fd11::a 8080]) + done -dnl Each server should have at least one connection. -AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v fe80 | -sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl + dnl Each server should have at least one connection. + ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fd11::2) | grep -v fe80 | \ + sed -e 's/zone=[[0-9]]*/zone=<cleared>/'], [0], [dnl tcp,orig=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>) tcp,orig=(src=fd11::2,dst=fd11::a,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::2,sport=<cleared>,dport=<cleared>),zone=<cleared>,mark=2,protoinfo=(state=<cleared>) tcp,orig=(src=fd11::b,dst=fd11::2,sport=<cleared>,dport=<cleared>),reply=(src=fd11::2,dst=fd11::b,sport=<cleared>,dport=<cleared>),zone=<cleared>,protoinfo=(state=<cleared>)
The tests were randomly failing as there is no guarentee that 15 nc will reach different load balancers. Also, running 15 nc made the test quite slow. Fixed by running loops of 5 nc, and then checking results. Test duration decreased by 15 to 20 seconds. Signed-off-by: Xavier Simonart <xsimonar@redhat.com> --- tests/system-ovn-kmod.at | 112 +++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 56 deletions(-)