summaryrefslogtreecommitdiffhomepage
path: root/pkg/tcpip/network
diff options
context:
space:
mode:
authorBhasker Hariharan <bhaskerh@google.com>2020-10-23 09:41:05 -0700
committergVisor bot <gvisor-bot@google.com>2020-10-23 09:43:09 -0700
commit5d909dd49c0b67f7f4d07fe832dc9aebbde731fb (patch)
tree9a0a2c11a0ce3247ee07b43a5ebcf7e603b82671 /pkg/tcpip/network
parent9ca66ec59882ea673a6fae9ae2e36989d88dc9d1 (diff)
Decrement e.synRcvdCount once handshake is complete.
Earlier the count was dropped only after calling e.deliverAccepted. This lead to an issue where there were no connections in SYN-RCVD state for the listening endpoint but e.synRcvdCount would not be zero because it was being reduced only when handleSynSegment returned after deliverAccepted returned. This issue is seen when the Nth SYN for a listen backlog of size N which would cause the listen backlog to be full gets dropped occasionally. This happens when the new SYN comes at when the previous completed endpoint has been delivered to the accept queue but the synRcvdCount hasn't yet been decremented because the goroutine running handleSynSegment has not yet completed. PiperOrigin-RevId: 338690646
Diffstat (limited to 'pkg/tcpip/network')
0 files changed, 0 insertions, 0 deletions