Skip to content

Commit

Permalink
selftests: net: fix tcp listener handling in pmtu.sh
Browse files Browse the repository at this point in the history
The pmtu.sh test uses a few TCP listener in a problematic way:
It hard-codes a constant timeout to wait for the listener starting-up
in background. That introduces unneeded latency and on very slow and
busy host it can fail.

Additionally the test starts again the same listener in the same
namespace on the same port, just after the previous connection
completed. Fast host can attempt starting the new server before the
old one really closed the socket.

Address the issues using the wait_local_port_listen helper and
explicitly waiting for the background listener process exit.

Fixes: 136a1b4 ("selftests: net: test vxlan pmtu exceptions with tcp")
Signed-off-by: Paolo Abeni <[email protected]>
Reviewed-by: David Ahern <[email protected]>
Link: https://lore.kernel.org/r/f8e8f6d44427d8c45e9f6a71ee1a321047452087.1706812005.git.pabeni@redhat.com
Signed-off-by: Jakub Kicinski <[email protected]>
  • Loading branch information
Paolo Abeni authored and kuba-moo committed Feb 3, 2024
1 parent d75df75 commit e71e016
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion tools/testing/selftests/net/pmtu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@
# Same as above but with IPv6

source lib.sh
source net_helper.sh

PAUSE_ON_FAIL=no
VERBOSE=0
Expand Down Expand Up @@ -1336,13 +1337,15 @@ test_pmtu_ipvX_over_bridged_vxlanY_or_geneveY_exception() {
TCPDST="TCP:[${dst}]:50000"
fi
${ns_b} socat -T 3 -u -6 TCP-LISTEN:50000 STDOUT > $tmpoutfile &
local socat_pid=$!

sleep 1
wait_local_port_listen ${NS_B} 50000 tcp

dd if=/dev/zero status=none bs=1M count=1 | ${target} socat -T 3 -u STDIN $TCPDST,connect-timeout=3

size=$(du -sb $tmpoutfile)
size=${size%%/tmp/*}
wait ${socat_pid}

[ $size -ne 1048576 ] && err "File size $size mismatches exepcted value in locally bridged vxlan test" && return 1
done
Expand Down

0 comments on commit e71e016

Please sign in to comment.