Date: Fri, 2 Feb 2007 16:10:16 GMT From: Dave Baukus <david.baukus@us.fujitsu.com> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/108670: TCP connection ETIMEDOUT Message-ID: <200702021610.l12GAGD0025504@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/108670; it has been noted by GNATS. From: Dave Baukus <david.baukus@us.fujitsu.com> To: FreeBSD-gnats-submit@freebsd.org, freebsd-bugs@freebsd.org Cc: Subject: Re: kern/108670: TCP connection ETIMEDOUT Date: Fri, 02 Feb 2007 09:30:14 -0600 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@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@us.fujitsu.com 972-479-2491 Fujitsu Network Communications Richardson, Texas USA
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702021610.l12GAGD0025504>