TCP connection stuck in SYN_RECV state despite ACK received, Linux 2.6.18, embedded, ARM

Posted by waynix on Server Fault See other posts from Server Fault or by waynix
Published on 2012-10-16T22:46:21Z Indexed on 2012/10/16 23:02 UTC
Read the original article Hit count: 267

Filed under:
|
|
|

My client cannot connect to my protocol port (TCP) after some network glitches, even though all other protocols (telnet/HTTP/FTP) work fine.

netstat shows that my server is listening and tcpdump on the server shows all 3 packets are exchanged:

18:29:16.578964 IP 10.9.59.10.3355 > 10.9.43.131.5084: S 2602965897:2602965897(0) win 65535 <mss 1460,nop,nop,sackOK>

18:29:16.579107 IP 10.9.43.131.5084 > 10.9.59.10.3355: S 3464857909:3464857909(0) ack 2602965898 win 5840 <mss 1460,nop,nop,sackOK>

18:29:16.579284 IP 10.9.59.10.3355 > 10.9.43.131.5084: . ack 1 win 65535

But somehow netstat -t shows the connection still in SYN_RECV, as if the ack is not seen by the TCP state machine. I have to restart my server to get it to work.

syncookie is not enabled, and I know from client code behavior and tcpdump that there is no SYN flooding.

Help much appreciated.

© Server Fault or respective owner

Related posts about linux

Related posts about tcp