summaryrefslogtreecommitdiffstats
path: root/Documentation/crypto/userspace-if.rst
diff options
context:
space:
mode:
authorTung Nguyen <tung.q.nguyen@dektech.com.au>2019-11-28 10:10:08 +0700
committerDavid S. Miller <davem@davemloft.net>2019-11-28 23:09:15 -0800
commitd34910e1751be79672db9cc61ca8892fbb4763f2 (patch)
treea17269352c6730e426ffb32af04369da2855a1e9 /Documentation/crypto/userspace-if.rst
parent12db3c8083fcab4270866a88191933f2d9f24f89 (diff)
downloadlinux-d34910e1751be79672db9cc61ca8892fbb4763f2.tar.bz2
tipc: fix duplicate SYN messages under link congestion
Scenario: 1. A client socket initiates a SYN message to a listening socket. 2. The send link is congested, the SYN message is put in the send link and a wakeup message is put in wakeup queue. 3. The congestion situation is abated, the wakeup message is pulled out of the wakeup queue. Function tipc_sk_push_backlog() is called to send out delayed messages by Nagle. However, the client socket is still in CONNECTING state. So, it sends the SYN message in the socket write queue to the listening socket again. 4. The listening socket receives the first SYN message and creates first server socket. The client socket receives ACK- and establishes a connection to the first server socket. The client socket closes its connection with the first server socket. 5. The listening socket receives the second SYN message and creates second server socket. The second server socket sends ACK- to the client socket, but it has been closed. It results in connection reset error when reading from the server socket in user space. Solution: return from function tipc_sk_push_backlog() immediately if there is pending SYN message in the socket write queue. Fixes: c0bceb97db9e ("tipc: add smart nagle feature") Signed-off-by: Tung Nguyen <tung.q.nguyen@dektech.com.au> Acked-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation/crypto/userspace-if.rst')
0 files changed, 0 insertions, 0 deletions