diff options
author | hxie <hxie@vmware.com> | 2022-05-08 23:45:49 -0700 |
---|---|---|
committer | Alin-Gabriel Serdean <aserdean@ovn.org> | 2022-05-25 21:39:13 +0300 |
commit | bb78070fc7ec0d67e80d9d15de482ef830196da3 (patch) | |
tree | cf8c3a8de587302d6e22a7915618be713512de25 /ofproto | |
parent | 738c76a503f4e3162b6c1de23c89347df897c963 (diff) | |
download | openvswitch-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