On Fri, 11 Sep 2026 15:41:33 -0300 Ricardo B. Marlière (SUSE) wrote:
> icmp.sh backgrounds ping and then starts tcpdump, with no synchronization
> between the two. If tcpdump is not capturing yet by the time the ICMP
> unreachable replies come back, the test fails even though the kernel
> behaved correctly:
> 
>   FAIL - got ICMP response from , should be 192.0.0.8
> 
> The empty address is misleading: it means the capture matched nothing
> before its 10s timeout, not that the reply had a wrong source address.
> NS1's Icmp InDestUnreachs counter still increments across such a failure,
> so the replies were generated and did reach NS1. Ping sends several probes
> over its 3s deadline, so losing every one of them takes a multi-second
> stall in tcpdump startup, which does happen on loaded CI hosts [1].
> 
> Fix it by starting tcpdump first and waiting for its "listening" banner
> via slowwait() before sending traffic. Run ping synchronously, then kill
> and reap tcpdump if it did not already exit on -c 1.

It used to pass in NIPA CI and now it fails:
https://netdev-ctrl.bots.linux.dev/logs/vmksft/net-dbg/results/819341/86-icmp-sh/stdout

> Fixes: 7e9838b7915e ("selftests/net: Add icmp.sh for testing ICMP dummy 
> address responses")

Please don't add Fixes tags to selftest improvements.

> Link: 
> https://openqa.opensuse.org/tests/5907626/logfile?filename=icmp_sh.tap.txt#line-2
>  [1]
> Signed-off-by: Ricardo B. Marlière (SUSE) <[email protected]>

Reply via email to