内核版本:92dfc9bbd612 (tag: 5.10.0-106.19.0) xfrm: Reinject transport-mode packets through workqueue
测试步骤:
- 进入内核源码并:cd tools/testing/selftests/bpf
- make test_sockmap ;make test_progs
- 运行 ./test_sockmap ,测试用例测完子程序 # 4/ 6 sockmap::txmsg test ingress redirect:OK 接着无输出,会卡在第5个子测试用例。
- 查看系统中的sockmap进程:ps fax |grep sockmap
13076 pts/0 S+ 0:00 | _ ./test_sockmap
13129 pts/0 S+ 0:00 | _ ./test_sockmap
13130 pts/0 Z+ 0:00 | _ [test_sockmap]
13237 pts/1 S+ 0:00 _ grep --color=auto sockmap
可以判断是因为子进程 13129 睡眠未完成导致。
- 此问题在上游 5.10 lts 也存在,是在backport 5.15的补丁才引入该bug的,在5.10 lts 上的commit id是:c842a4c4ae7f bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding
- 这个问题应该是上游lts也没有正确回合补丁,肯定是缺了一部分补丁导致的,请研发的同学可以根据以上线索可以确认,并试着修复下。