2.2.14 TCP close problem - race?

From: Charlie Brady (charlieb@aurema.com)
Date: Wed May 24 2000 - 04:42:46 EST


A colleague reports the following. Is this a known problem? Comments? More
info required? Fixes?

====================

We have a problem with some server code and some apparently spurious
RST packets.

The client establishes a session, sends a request and receives ECONNRESET
instead of the data expected. The server side reports no errors. It
accepts the connection, reads the request and writes the response (2
write calls) and calls close. tcpdump shows everything normal until
after the ack by the receiver of the server data. This produces the
RST response. There are no FIN packets.

Workarounds:
        sleep(1) in the server code before the close.
        using 4 byte aligned and sized data packets
        use a solaris 2.6 system for the server end.

My uneducated guess is a race of some sort in the TCP close routine
where the closed state is being marked prematurely before all data is
sent and acked.

Kernel version is 2.2.14-5.0 (RedHat)

-- 
 Chris Maltby     "One man is as good as another. In fact, probably better."
chris@sw.oz.au

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed May 31 2000 - 21:00:11 EST