flaky tc_redirect/tc_redirect_dtime

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Martin,

I remember you tried to fix tc_redirect/tc_redirect_dtime flakiness,
but it is still flaky.
Just running test_progs -t tc_redirect/tc_redirect_dtime
in a loop it will fail after 30-50 iterations in my VM and always with:

test_inet_dtime:PASS:setns src 0 nsec
(network_helpers.c:253: errno: Operation now in progress) Failed to
connect to server
close_netns:PASS:setns 0 nsec
test_inet_dtime:FAIL:connect_to_fd unexpected connect_to_fd: actual -1
< expected 0

I've added this hack:
+again:
        nstoken = open_netns(NS_SRC);
        if (!ASSERT_OK_PTR(nstoken, "setns src"))
                goto done;
@@ -573,6 +575,11 @@ static void test_inet_dtime(int family, int type,
const char *addr, __u16 port)
        if (!ASSERT_GE(client_fd, 0, "connect_to_fd"))
                goto done;

+       if (i++ < 1000 && 0) {
+               printf("XXXX %d\n", i);
+               close(client_fd);
+               goto again;
+       }

and realized that only the first connect can succeed.
The 2nd connect always fails.
So I suspect bpf prog sees first stray packet, acts on it,
but the actual connect request comes 2nd and it fails.

I tried to understand what's going on inside bpf prog,
but the test is too complicated.
Please take a look when you have a chance.

I also added:
@@ -857,7 +864,7 @@ static void test_tc_redirect_dtime(struct
netns_setup_result *setup_result)
                goto done;

        test_tcp_clear_dtime(skel);
-
+if (0) {
        test_tcp_dtime(skel, AF_INET, true);
        test_tcp_dtime(skel, AF_INET6, true);
        test_udp_dtime(skel, AF_INET, true);
@@ -878,7 +885,7 @@ static void test_tc_redirect_dtime(struct
netns_setup_result *setup_result)
        test_tcp_dtime(skel, AF_INET6, false);
        test_udp_dtime(skel, AF_INET, false);
        test_udp_dtime(skel, AF_INET6, false);
-
+}
to speed up a test a bit.




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux