On 02/06/2018 01:25 AM, Yonghong Song wrote:
> The tests at tools/testing/selftests/bpf can run in patch mode, e.g.,
>     make -C tools/testing/selftests/bpf run_tests
> 
> With the batch mode, I experimented intermittent test failure of
> test_xdp_redirect.sh.
>     ....
>     selftests: test_xdp_redirect [PASS]
>     selftests: test_xdp_redirect.sh [PASS]
>     RTNETLINK answers: File exists
>     selftests: test_xdp_meta [FAILED]
>     selftests: test_xdp_meta.sh [FAIL]
>     ....
> 
> The following illustrates what caused the failure:
>      (1). test_xdp_redirect creates veth pairs (veth1,veth11) and
>           (veth2,veth22), and assign veth11 and veth22 to namespace
>           ns1 and ns2 respectively.
>      (2). at the end of test_xdp_redirect test, ns1 and ns2 are
>           deleted. During this process, the deletion of actual
>           namespace resources, including deletion of veth1{1} and veth2{2},
>           is put into a workqueue to be processed asynchronously.
>      (3). test_xdp_meta tries to create veth pair (veth1, veth2).
>           The previous veth deletions in step (2) have not finished yet,
>           and veth1 or veth2 may be still valid in the kernel, thus
>           causing the failure.
> 
> The fix is to explicitly delete the veth pair before test_xdp_redirect
> exits. Only one end of veth needs deletion as the kernel will delete
> the other end automatically. Also test_xdp_meta is also fixed in
> similar manner to avoid future potential issues.
> 
> Fixes: 996139e801fd ("selftests: bpf: add a test for XDP redirect")
> Fixes: 22c8852624fc ("bpf: improve selftests and add tests for meta pointer")
> Signed-off-by: Yonghong Song <y...@fb.com>

Thanks for catching this, Yonghong, applied to bpf tree!

Reply via email to