kern/108670: TCP connection ETIMEDOUT

Dave Baukus david.baukus at us.fujitsu.com
Fri Feb 2 16:00:37 UTC 2007


I realized, late last night, that I was wrong on a few
details concerning this bug:

1.) The retransmit timer does not keep popping on without
being restarted.

2.) ip_output() must return ENOBUFS (TCP_MAXRXTSHIFT + 1) times
to the same, non-transmitting TCP.

3.) Given a TCP as described below, when tcp_output() uses ENOBUFS
to blindly start the retransmit timer then tp->t_rxtshift will be
falsely incremented and never cleared.

Thus the bug manifests itself because it appears for a TCP that
never transmits nobody ever clears clears tp->t_rxtshift;
this allows tp->t_rxtshift to slowly count up to TCP_MAXRXTSHIFT;
once TCP_MAXRXTSHIFT is exceeded tcp_timer_rexmt() will
kill the poor innocent TCP.


On 02/01/07 17:40, FreeBSD-gnats-submit at FreeBSD.org wrote:
> Thank you very much for your problem report.
> It has the internal identification `kern/108670'.
> The individual assigned to look at your
> report is: freebsd-bugs. 
> 
> You can access the state of your problem report at any time
> via this link:
> 
> http://www.freebsd.org/cgi/query-pr.cgi?pr=108670
> 
> 
>>Category:       kern
>>Responsible:    freebsd-bugs
>>Synopsis:       TCP connection ETIMEDOUT
>>Arrival-Date:   Thu Feb 01 23:40:18 GMT 2007
> 
> 

-- 
Dave Baukus
    david.baukus at us.fujitsu.com
    972-479-2491

    Fujitsu Network Communications
          Richardson, Texas
                  USA


More information about the freebsd-bugs mailing list