tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: panic: tcp_output REXMT



On Sat, Aug 30, 2008 at 12:30:15PM +0000, Christos Zoulas wrote:
> In article <20080830095555.GB2277%antioche.eu.org@localhost>,
> Manuel Bouyer  <bouyer%antioche.eu.org@localhost> wrote:
> >Hi,
> >on a netbsd-3 amd64 server I've got this panic (several times now):
> >panic: tcp_output REXMT
> >panic() at netbsd:panic+0x1c8
> >tcp_segsize() at netbsd:tcp_segsize
> >tcp_timer_persist() at netbsd:tcp_timer_persist+0x73
> >softclock() at netbsd:softclock+0x2c9
> >softintr_dispatch() at netbsd:softintr_dispatch+0x99
> >DDB lost frame for netbsd:Xsoftclock+0x2d, trying 0xffffffff8069bcd0
> >Xsoftclock() at netbsd:Xsoftclock+0x2d
> >
> >Does it ring a bell to someone ?
> >
> >I can't make much sense of the stack trace. The panic is in tcp_setpersist()
> >and tcp_timer_persist() is calling tcp_setpersist(); so I guess the
> >tcp_segsize() here is wrong (I can't see from where it would be called in
> >tcp_timer_persist()).
> >Another path would be tcp_timer_persist()->tcp_output()->tcp_segsize()
> >but then I don't know where tcp_setpersist() is called from.
> >If called from tcp_output(), in both case we either call
> >TCP_TIMER_DISARM(tp, TCPT_REXMT) before or check
> >TCP_TIMER_ISARMED(tp, TCPT_REXMT) == 0. 
> >Another theory is that there's a code path arming TCPT_REXMT from
> >above splsoftnet().
> >
> >I didn't see any evidence that this could be fixed in -current.
> >
> >Any idea ?
> 
> I thought that there was a race in the timer reset code that I fixed
> a while ago. I never got that particular panic though.

Would it be this commit ?
revision 1.109
date: 2004/03/30 19:58:14;  author: christos;  state: Exp;  lines: +3 -3
Make sure we disarm the persist timer before we arm the rexmit
timer, otherwise there is a tiny window where both timers are
active, and this is not correct according to the comments in the
code. I believe that this is the cause of the to_ticks <= 0 assertion
failure in callout_schedule() that I've been getting.

If so, it's before netbsd-3 was branched ...

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index