summaryrefslogtreecommitdiff
path: root/ofproto
diff options
context:
space:
mode:
authorhxie <hxie@vmware.com>2022-05-08 23:45:49 -0700
committerAlin-Gabriel Serdean <aserdean@ovn.org>2022-05-25 21:39:13 +0300
commitbb78070fc7ec0d67e80d9d15de482ef830196da3 (patch)
treecf8c3a8de587302d6e22a7915618be713512de25 /ofproto
parent738c76a503f4e3162b6c1de23c89347df897c963 (diff)
downloadopenvswitch-bb78070fc7ec0d67e80d9d15de482ef830196da3.tar.gz
Carefully release NBL in Windows
OvsExtSendNBLComplete always release NBLs with flag SINGL_SOURCE, this is an efficient way, which requires all the NBLs having the same source port, when cloned/fragment NBLs are released, the parent NBLs will be released as well, the problem is that a parent NBL may have a different source port from the cloned/fragment NBL, so releasing the parent NBLs with flag SINGLE_SOURCE is not corrct, see: https://github.com/microsoft/hcsshim/issues/1056 When this happens, commands 'Get-NetAdapter' and 'Get-HnsEndpoint' in the Windows node show that one net-adapter/hns-endpoint is in 'disconnected' state, meanwhile, following processes are affected, ecah of them has one thread pending on a lock: vmcompute.exe containerd.exe antrea-agent.exe To fix this issue, we may check SourcePortId in each parent NBLs before released. A simple way to reprodue this issue: 1, Enable encap mode 2, create 2 nodes, nodeA and nodeB 3, create podA with image k8s.gcr.io/e2e-test-images/agnhost:2.21 on nodeA, run 'iperf/iperf.exe -s -p 9000 -D' 4, create podB with same image on nodeB, run command 'iperf/iperf.exe -c <podA-ip> -p 9000' 5, delete podB 6, run 'Get-NetAdapter' on nodeB, you will find the leaked net adapter. Signed-off-by: Hongsheng Xie <hxie@vmware.com> Signed-off-by: Alin-Gabriel Serdean <aserdean@ovn.org>
Diffstat (limited to 'ofproto')
0 files changed, 0 insertions, 0 deletions