Skip site navigation (1)Skip section navigation (2)
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>