Acked-by: Jarno Rajahalme <ja...@ovn.org> > On May 4, 2016, at 6:01 PM, Joe Stringer <j...@ovn.org> wrote: > > Several of the tests have race conditions where the next step in the > test may run before the kernel actually provides IPv6 connectivity. > This causes intermittent testsuite failures. Some existing tests > would even sleep in an attempt to mitigate this issue. > > Improve the resilience of these tests by waiting until IPv6 or FTP > connectivity are ready. This speeds the testsuite up by a couple of > percent. > > Signed-off-by: Joe Stringer <j...@ovn.org> > --- > tests/system-traffic.at | 50 +++++++++++++++++++++++++++++++++---------------- > 1 file changed, 34 insertions(+), 16 deletions(-) > > diff --git a/tests/system-traffic.at b/tests/system-traffic.at > index a5ec11775a7b..9a1769fdb1af 100644 > --- a/tests/system-traffic.at > +++ b/tests/system-traffic.at > @@ -79,9 +79,10 @@ ADD_NAMESPACES(at_ns0, at_ns1) > ADD_VETH(p0, at_ns0, br0, "fc00::1/96") > ADD_VETH(p1, at_ns1, br0, "fc00::2/96") > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING], > [0], [dnl > 3 packets transmitted, 3 received, 0% packet loss, time 0ms > @@ -109,9 +110,10 @@ ADD_VETH(p1, at_ns1, br0, "fc00::2/96") > ADD_VLAN(p0, at_ns0, 100, "fc00:1::1/96") > ADD_VLAN(p1, at_ns1, 100, "fc00:1::2/96") > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PING], > [0], [dnl > 3 packets transmitted, 3 received, 0% packet loss, time 0ms > @@ -351,9 +353,10 @@ priority=100,in_port=2,ct_state=+trk+est,tcp6,action=1 > > AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > dnl HTTP requests from ns0->ns1 should work fine. > NETNS_DAEMONIZE([at_ns1], [[$PYTHON $srcdir/test-l7.py http6]], [http0.pid]) > @@ -1262,6 +1265,11 @@ table=1 priority=0, action=drop > > AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) > > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > +dnl "connect: Cannot assign requested address" > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2 >/dev/null]) > + > NETNS_DAEMONIZE([at_ns1], [[$PYTHON $srcdir/test-l7.py ftp]], [ftp0.pid]) > > dnl FTP requests from p0->p1 should work fine. > @@ -1475,9 +1483,10 @@ priority=100,icmp6,icmp_type=136,action=normal > > AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > dnl Basic connectivity check. > NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING], > [0], [dnl > @@ -1522,9 +1531,10 @@ priority=100,icmp6,icmp_type=136,action=normal > > AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > dnl Basic connectivity check. > NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING], > [0], [dnl > @@ -1565,9 +1575,10 @@ priority=100,icmp6,icmp_type=136,action=normal > > AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > dnl Basic connectivity check. > NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00:1::4 | FORMAT_PING], > [0], [dnl > @@ -1673,9 +1684,10 @@ ADD_OVS_TUNNEL([vxlan], [br0], [at_vxlan0], > [172.31.1.1], ["fc00::2/96"]) > ADD_NATIVE_TUNNEL([vxlan], [at_vxlan1], [at_ns0], [172.31.1.100], > ["fc00::1/96"], > [id 0 dstport 4789]) > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > dnl First, check the underlay > NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100 | > FORMAT_PING], [0], [dnl > @@ -2224,9 +2236,10 @@ > priority=200,in_port=2,ct_state=+trk+new,icmp6,icmpv6_code=0,icmpv6_type=135,nd_ > > AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) > > -dnl Without this sleep, we get occasional failures due to the following > error: > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > dnl "connect: Cannot assign requested address" > -sleep 2; > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) > > dnl HTTP requests from ns0->ns1 should work fine. > NETNS_DAEMONIZE([at_ns1], [[$PYTHON $srcdir/test-l7.py http6]], [http0.pid]) > @@ -2280,6 +2293,11 @@ table=1 priority=0, action=drop > > AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) > > +dnl Linux seems to take a little time to get its IPv6 stack in order. Without > +dnl waiting, we get occasional failures due to the following error: > +dnl "connect: Cannot assign requested address" > +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2 >/dev/null]) > + > NETNS_DAEMONIZE([at_ns1], [[$PYTHON $srcdir/test-l7.py ftp]], [ftp0.pid]) > > dnl FTP requests from p0->p1 should work fine. > -- > 2.1.4 >
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev