[SRU][N][PATCH 0/1] test_vxlan_vnifiltering.sh from ubuntu_kselftests_net failed on linux-oem-6.8 (with ipv6 default rdst)
AceLan Kao
acelan.kao at canonical.com
Tue Sep 22 05:28:56 UTC 2026
From: "Chia-Lin Kao (AceLan)" <acelan.kao at canonical.com>
BugLink: https://bugs.launchpad.net/bugs/2071590
[Impact]
The ubuntu_kselftests_net test test_vxlan_vnifiltering.sh fails on and off.
One subtest fails while the other 26 pass:
TEST: VM connectivity over vnifiltering vxlan (ipv4 default rdst) [ OK ]
TEST: VM connectivity over vnifiltering vxlan (ipv6 default rdst) [ OK ]
TEST: VM connectivity over vnifiltering vxlan pervni remote (ipv4 default rdst) [ OK ]
TEST: VM connectivity over vnifiltering vxlan pervni remote (ipv6 default rdst) [FAIL]
#
Tests passed: 26
Tests failed: 1
not ok 1 selftests: net: test_vxlan_vnifiltering.sh # exit=1
Only the subtests that use an IPv6 underlay remote fail. Every IPv4 subtest
passes in the same run.
The test sends one ping with a 1 second deadline right after it sets up the
network. The IPv6 underlay addresses are still doing Duplicate Address
Detection at that point, so the address cannot be used as a tunnel source
yet. The single packet is dropped and the test gives up.
Slow machines lose this race more often. Seen on arm64 64k, lowlatency,
lowlatency 64k, nvidia-lowlatency, azure and gcp instances. Also seen on
amd64 gcp instances, so this is not arm64 only.
This is a test bug. The VXLAN driver is fine.
[Fix]
Replace the single ping with slowwait, which retries every 100ms for up to
5 seconds. Also drop a pointless fixed "sleep 1".
948670361c0c1 selftests: net: use slowwait to make sure IPv6 setup finished
Upstream in v6.17.
slowwait() already exists in tools/testing/selftests/net/lib.sh on the
target branches, so no other patch is needed first.
[Test Plan]
Run the test on a slow or loaded machine, arm64 or a small cloud instance:
$ cd tools/testing/selftests/net
$ sudo ./test_vxlan_vnifiltering.sh
Repeat 20 times, the failure does not happen every run:
$ for i in $(seq 20); do sudo ./test_vxlan_vnifiltering.sh | tail -3; done
Without patch: "VM connectivity over vnifiltering vxlan pervni remote
(ipv6 default rdst) [FAIL]" shows up in some runs, Tests failed: 1
With patch: all runs report Tests passed: 27, Tests failed: 0
[Where problems could occur]
Could break test_vxlan_vnifiltering.sh itself. Nothing outside the test
tree is touched, so no kernel code is at risk.
slowwait retries until the command succeeds. If a real VXLAN datapath bug
shows up later, this test now waits 5 seconds per ping before reporting it,
so a broken run takes longer to finish. In the worst case, a full failure
goes from a few seconds to about 50 seconds.
If slowwait is missing from lib.sh on a branch, the test would abort with
"slowwait: command not found" and every connectivity subtest would fail.
Check lib.sh has slowwait() before applying.
[Other Info]
Test only change, no kernel code changes.
Already in noble hwe-6.17 and hwe-7.0. Missing from noble 6.8 (master)
which is the only branch still hitting this.
Hangbin Liu (1):
selftests: net: use slowwait to make sure IPv6 setup finished
tools/testing/selftests/net/test_vxlan_vnifiltering.sh | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
--
2.53.0
More information about the kernel-team
mailing list