Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

selftests: netconsole: print diagnostic on busywait timeout in netcons_basic

The script uses set -euo pipefail, so when busywait times out waiting
for the netconsole message to arrive, it returns 1 and the script exits
immediately without printing any error message. As reported by Jakub,
this makes failures hard to diagnose since the test reports exit=1 with
no explanation.

Handle the busywait failure explicitly so that a FAIL message is printed
before exiting. This is how it looks like now:

Running with target mode: basic (ipv6)
[ 167.452561] netconsole selftest: netcons_QdMay
FAIL: Timed out waiting (20000 ms) for netconsole message in /tmp/netcons_QdMay

The remaining silent failures under set -e can only happen during the
setup phase (netdevsim creation, interface configuration, configfs
writes). So, it is not expected to have any silent failure once the test
starts.

Note that this issue might be less frequent now, since commit
a68a9bd086c28 ("selftests: netconsole: Increase port listening timeout")
increased the timeout that _might_ have been the root cause of these
random failures in NIPA.

Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260302-netconsole_test_verbose-v1-1-b1be5d30cd7d@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Breno Leitao and committed by
Jakub Kicinski
dfa77c0d 1085c258

+5 -1
+5 -1
tools/testing/selftests/drivers/net/netconsole/netcons_basic.sh
··· 58 58 # Send the message 59 59 echo "${MSG}: ${TARGET}" > /dev/kmsg 60 60 # Wait until socat saves the file to disk 61 - busywait "${BUSYWAIT_TIMEOUT}" test -s "${OUTPUT_FILE}" 61 + if ! busywait "${BUSYWAIT_TIMEOUT}" test -s "${OUTPUT_FILE}" 62 + then 63 + echo "FAIL: Timed out waiting (${BUSYWAIT_TIMEOUT} ms) for netconsole message in ${OUTPUT_FILE}" >&2 64 + exit "${ksft_fail}" 65 + fi 62 66 63 67 # Make sure the message was received in the dst part 64 68 # and exit