Commit 691bb4e4 authored by Paolo Abeni's avatar Paolo Abeni Committed by Jakub Kicinski

selftests: net: avoid just another constant wait

Using hard-coded constant timeout to wait for some expected
event is deemed to fail sooner or later, especially in slow
env.

Our CI has spotted another of such race:
   # TEST: ipv6: cleanup of cached exceptions - nexthop objects          [FAIL]
   #   can't delete veth device in a timely manner, PMTU dst likely leaked

Replace the crude sleep with a loop looking for the expected condition
at low interval for a much longer range.

Fixes: b3cc4f8a ("selftests: pmtu: add explicit tests for PMTU exceptions cleanup")
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/fd5c745e9bb665b724473af6a9373a8c2a62b247.1706812005.git.pabeni@redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent e71e016a
...@@ -1957,6 +1957,13 @@ check_command() { ...@@ -1957,6 +1957,13 @@ check_command() {
return 0 return 0
} }
check_running() {
pid=${1}
cmd=${2}
[ "$(cat /proc/${pid}/cmdline 2>/dev/null | tr -d '\0')" = "{cmd}" ]
}
test_cleanup_vxlanX_exception() { test_cleanup_vxlanX_exception() {
outer="${1}" outer="${1}"
encap="vxlan" encap="vxlan"
...@@ -1987,11 +1994,12 @@ test_cleanup_vxlanX_exception() { ...@@ -1987,11 +1994,12 @@ test_cleanup_vxlanX_exception() {
${ns_a} ip link del dev veth_A-R1 & ${ns_a} ip link del dev veth_A-R1 &
iplink_pid=$! iplink_pid=$!
sleep 1 for i in $(seq 1 20); do
if [ "$(cat /proc/${iplink_pid}/cmdline 2>/dev/null | tr -d '\0')" = "iplinkdeldevveth_A-R1" ]; then check_running ${iplink_pid} "iplinkdeldevveth_A-R1" || return 0
sleep 0.1
done
err " can't delete veth device in a timely manner, PMTU dst likely leaked" err " can't delete veth device in a timely manner, PMTU dst likely leaked"
return 1 return 1
fi
} }
test_cleanup_ipv6_exception() { test_cleanup_ipv6_exception() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment