tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: panic: tcp_output REXMT
On Mon, Sep 01, 2008 at 04:24:21PM +0200, Edgar Fuß wrote:
> > Does it ring a bell to someone ?
> RRRRR..yes..INGGG.
>
> About half a year ago, I found a bug (at least, yamt@ replied that it looked
> like a bug him) in the TCP timer logic and proposed a patch:
>
> http://mail-index.netbsd.org/tech-net/2008/02/18/msg000235.html
>
> where I was wondering why tcp_setpersist() wasn't panicking all the time.
> Maybe you are just running into that. The bug is most likely to be triggered
> on a low-MSS-connection with somewhat high packet loss (and SACK enabled).
I could be running in this case; there is indeed SACK enabled, and we could
have low MSS and high packet loss for some clients.
But I don't understand how it could cause a tcp_setpersist() panic. If I
understand it properly, we can't have TCPT_REXMT and TCPT_PERSIST armed
at the same time. Here the path comes from TCPT_PERSIST's handler so
it was armed. Nothing arms TCPT_PERSIST outside of tcp_setpersist(),
so TCPT_REXMT has been armed after TCPT_PERSIST was.
syn_cache_get() can arm TCPT_REXMT without checking TCPT_PERSIST.
I don't know if TCPT_PERSIST could have been armed before at this point.
I couldn't find other places where TCPT_REXMT would be armed without
checking TCPT_PERSIST.
--
Manuel Bouyer, LIP6, Universite Paris VI.
Manuel.Bouyer%lip6.fr@localhost
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index