On Mon, 25 Feb 2019 13:33:30 +0100
Sabrina Dubroca <[email protected]> wrote:
> 2019-02-25, 12:13:46 +0100, Paolo Abeni wrote:
> > + if ! timeout 1 ${ns_a} ip link del dev veth_A-R1; then
>
> That doesn't work. "ip link del" is stuck in a way that timeout can't
> terminate it, so this is still going to hang. Did you actually test
> this? :/
Indeed, upon actual testing, this hangs and the error is not reported.
> > + err " can't delete veth device in a timely
> > manner, PMTU dst likely leaked"
> > + return 1
> > + fi
> > + return 0
> > +}
You can use a subshell here, something like:
${ns_a} ip link del dev veth_A-R1 &
iplink_pid=$!
sleep 1
if [ "$(cat /proc/${iplink_pid}/cmdline 2>/dev/null | tr -d '\0')" =
"iplinkdeldevveth_A-R1" ]; then
err " can't delete veth device in a timely manner, PMTU dst
likely leaked"
return 1
fi
}
and now that I tried to run as a single test and couldn't find it, I
think it would also be worth it to rename the tests to something more
sensible.
Right now you have test_pmtu_ipv6_exception_cleanup() calling
test_cleanup_...(), I think it's confusing. Just call the test
test_cleanup_ipv6_exception(), it doesn't have so much to do with PMTU
anyway.
--
Stefano