selftests/bpf: test_progs: fix client/server race in tcp_rtt
authorStanislav Fomichev <sdf@google.com>
Mon, 23 Sep 2019 18:41:12 +0000 (11:41 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 25 Sep 2019 20:13:45 +0000 (22:13 +0200)
commit8a03222f508bf09e03cf38f6bd77b34b450c1d60
tree700c5bce7174eb03d2fab2c678216603ac985872
parent733ef7f056a5e23b66e8e7bb3508ca882db388f0
selftests/bpf: test_progs: fix client/server race in tcp_rtt

This is the same problem I found earlier in test_sockopt_inherit:
there is a race between server thread doing accept() and client
thread doing connect(). Let's explicitly synchronize them via
pthread conditional variable.

v2:
* don't exit from server_thread without signaling condvar,
  fixes possible issue where main() would wait forever (Andrii Nakryiko)

Fixes: b55873984dab ("selftests/bpf: test BPF_SOCK_OPS_RTT_CB")
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/testing/selftests/bpf/prog_tests/tcp_rtt.c