9.0-RC1 panic in tcp_input: negative winow.
John Baldwin
jhb at freebsd.org
Thu Dec 29 16:24:26 UTC 2011
On Sunday, December 25, 2011 11:01:33 am Коньков Евгений wrote:
> Здравствуйте, John.
>
> Вы писали 20 декабря 2011 г., 16:52:44:
>
> 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.
> >>
> >> Unfortunately it paniced today. Take a look at:
> >>
> >> http://people.freebsd.org/~pjd/misc/tcp_panic.jpg
>
> JB> Ok, the one use case I was worried about is happening regularly before 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:
>
> 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"));
>
> 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.
>
>
> # uname -a
> FreeBSD meta-up 9.0-PRERELEASE FreeBSD 9.0-PRERELEASE #4: Sat Dec 24 13:59:20 EET 2011 @:/usr/obj/usr/src/sys/KES_KERN_v10 i386
>
> 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?
--
John Baldwin
More information about the freebsd-net
mailing list