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