Heres the scenrio: TCP server running on solaris, TCP client running on Linux. Client connects and starts sending data. Client stops sending data and after N inactive seconds the server send a FIN, ACK (presumably from a shutdown call on the send pipe). The client starts sending data again. The server freaks out and starts sending a bunch of RST packets with no other flags set. The first packet is lost and they handshake again. The send never returns an error and the one packet is silently lost.
Any ideas why the RST is not being propagated to the client?
tcpdump
on the client + astrace
of the client would be helpful in diagnosing. From your description, it seems the client is ignoring errors and reconnecting after a timeout. - ninjaljconnect()
again. - cafsend()
errors. - user207421