Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Dec 2011 11:12:59 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        =?windows-1251?b?yu7t/Oru4iDF4uPl7ejp?= <kes-kes@yandex.ru>
Cc:        Andre Oppermann <andre@freebsd.org>, freebsd-net@freebsd.org, Pawel Jakub Dawidek <pjd@freebsd.org>, freebsd-current@freebsd.org, Kostik Belousov <kostikbel@gmail.com>, Lawrence Stewart <lstewart@freebsd.org>
Subject:   Re: 9.0-RC1 panic in tcp_input: negative winow.
Message-ID:  <201112291112.59912.jhb@freebsd.org>
In-Reply-To: <1632420869.20111225180133@yandex.ru>
References:  <20111022084931.GD1697@garage.freebsd.pl> <201112200952.44690.jhb@freebsd.org> <1632420869.20111225180133@yandex.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, December 25, 2011 11:01:33 am =CA=EE=ED=FC=EA=EE=E2 =C5=E2=E3=E5=
=ED=E8=E9 wrote:
> =C7=E4=F0=E0=E2=F1=F2=E2=F3=E9=F2=E5, John.
>=20
> =C2=FB =EF=E8=F1=E0=EB=E8 20 =E4=E5=EA=E0=E1=F0=FF 2011 =E3., 16:52:44:
>=20
> JB> On Saturday, December 17, 2011 6:21:27 pm Pawel Jakub Dawidek wrote:
> >> On Mon, Dec 12, 2011 at 11:00:23AM -0500, John Baldwin wrote:
> >> > An update.  I've sent Pawel a testing patch to see if my hypothesis =
is correct
> >> > (www.freebsd.org/~jhb/patches/tcp_negwin_test.patch).  If it is then=
 I intend
> >> > to commit www.freebsd.org/~jhb/patches/tcp_negwin2.patch as the fix.
> >>=20
> >> Unfortunately it paniced today. Take a look at:
> >>=20
> >>       http://people.freebsd.org/~pjd/misc/tcp_panic.jpg
>=20
> JB> Ok, the one use case I was worried about is happening regularly befor=
e your
> JB> panic, so that is good.  Can you use gdb to figure out which call to
> JB> tcp_output() is actually panic'ing?  I wonder if it is this case:
>=20
> JB>         /*
> JB>          * Return any desired output.
> JB>          */
> JB>         if (needoutput || (tp->t_flags & TF_ACKNOW)) {
> JB>                 (void) tcp_output(tp);
> JB>                 /* XXX: Debug */
> JB>                 KASSERT(SEQ_GEQ(tp->rcv_adv, tp->rcv_nxt),
> JB>                     ("tcp_input: negative window after ACK"));
>=20
> JB> And if 'needoutput' is true, but TF_ACKNOW is not set, and tcp_output=
() decides
> JB> to not do anything.  I've updated tcp_negwin_test.patch to not panic =
if that call
> JB> to tcp_output() doesn't actually send a packet.  Please re-test.
>=20
>=20
> # uname -a
> FreeBSD meta-up 9.0-PRERELEASE FreeBSD 9.0-PRERELEASE #4: Sat Dec 24 13:5=
9:20 EET 2011     @:/usr/obj/usr/src/sys/KES_KERN_v10  i386
>=20
> rebooting once per day. Now I compile kernel with debug options.
> Can you advice me which and where I find debug info when it will
> reboting next time? so I can help to debug problem

Are you using the patch at the URL above (tcp_negwin_test.patch)?  If not,
can you try applying that patch and seeing if you still get any panics?

=2D-=20
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112291112.59912.jhb>