Date: Thu, 12 Jul 2007 08:01:15 +0400 From: Eygene Ryabinkin <rea-fbsd@codelabs.ru> To: Mike Silbersack <silby@silby.com> Cc: Robert Watson <rwatson@freebsd.org>, Andre Oppermann <andre@freebsd.org>, current@freebsd.org, net@freebsd.org Subject: Re: FreeBSD 7 TCP syncache fix: request for testers Message-ID: <20070712040115.GK1038@void.codelabs.ru> In-Reply-To: <20070711060423.GV1038@void.codelabs.ru> References: <20070709234401.S29353@odysseus.silby.com> <20070710132253.GJ1038@void.codelabs.ru> <20070710202028.I34890@odysseus.silby.com> <20070711060423.GV1038@void.codelabs.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Good day. Wed, Jul 11, 2007 at 10:04:23AM +0400, Eygene Ryabinkin wrote: > OK, maybe I have something that can be related to this bug. It > provokes another message, 'Spurious RST', but can be correlated > with your guess. What is happening is that when one side closes > the connection and releases the socket (running -CURRENT) while the > other one is still pushing data through the connection, we are > getting 'Spurious RST' messages. This happens, because we are > checking the 'so->so_state' for the presence of the 'SS_NOFDREF' > flag (tcp_input.c, version 1.361, line 1581) and dropping such > connections with RST. But the connection was already closed (living > in the FIN-WAIT-2 state, to be precise) from that side, so it > provokes the debug message. To clarify one point: the first RST is due to the SS_NOFDREF flag. The rest of RSTs are spitted out because the corresponding connection was closed by tcp_close() just before the first RST. -- Eygene
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070712040115.GK1038>