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: rtnetlink: fix addrlft test flakiness on power-saving systems

Jakub reported that the rtnetlink test for the preferred lifetime of an
address has become quite flaky. The issue started appearing around the 6.16
merge window in May, and the test fails with:

FAIL: preferred_lft addresses remaining

The flakiness might be related to power-saving behavior, as address
expiration is handled by a "power-efficient" workqueue.

To address this, use slowwait to check more frequently whether the address
still exists. This reduces the likelihood of the system entering a low-power
state during the test, improving reliability.

Reported-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
Link: https://patch.msgid.link/20250715043459.110523-1-liuhangbin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Hangbin Liu and committed by
Jakub Kicinski
3047957c c3886cca

+13 -3
+13 -3
tools/testing/selftests/net/rtnetlink.sh
··· 291 291 end_test "PASS: route get" 292 292 } 293 293 294 + check_addr_not_exist() 295 + { 296 + dev=$1 297 + addr=$2 298 + if ip addr show dev $dev | grep -q $addr; then 299 + return 1 300 + else 301 + return 0 302 + fi 303 + } 304 + 294 305 kci_test_addrlft() 295 306 { 296 307 for i in $(seq 10 100) ;do ··· 309 298 run_cmd ip addr add 10.23.11.$i/32 dev "$devdummy" preferred_lft $lft valid_lft $((lft+1)) 310 299 done 311 300 312 - sleep 5 313 - run_cmd_grep_fail "10.23.11." ip addr show dev "$devdummy" 314 - if [ $? -eq 0 ]; then 301 + slowwait 5 check_addr_not_exist "$devdummy" "10.23.11." 302 + if [ $? -eq 1 ]; then 315 303 check_err 1 316 304 end_test "FAIL: preferred_lft addresses remaining" 317 305 return