6.2-PRE: Fatal Trap?

Robert Watson rwatson at FreeBSD.org
Sat Dec 30 09:08:57 PST 2006

On Sat, 30 Dec 2006, Karol Kwiatkowski wrote:

>>>> It looks like the attached patch was missed in the MFC I just pointed at. 
>>>> Could you try applying it?
>>>> You can also fetch it from:
>>>> http://www.watson.org/~robert/freebsd/20061230-20061230-tcp_pcb_fix.diff
>>> Normally, I'd be more than happy to, but, given: 1) the box is 300+ miles 
>>> away 2) I do NOT have access to remote hands again till Tuesday (Holiday) 
>>> 3) this is my firewall between all my services and the rest of the world
>>>   and if down, I'm off the air :(
>>> I wish I could, but can't afford to be down for the 5 days :(
>>> Thanks for the diagnosis, however, as I was going nuts.
>> I've gone ahead and MFC'd the missing tcp_subr.c patch and the change now 
>> appears stable on by 6-STABLE test box.  I'd appreciate it if other people 
>> experiencing the panic could slide forward to confirm (or perhaps less 
>> ideally, not confirm) that this fixes the problem for them also.
> The link is slightly broken, I've found the patch here:
> http://www.watson.org/~robert/freebsd/20061230-tcp_pcb_fix.diff

Thanks, sorry about that!

> Applied, recompiled the kernel - no more panic :)
> Thanks Robert nad Max. If there's anything else needed let me know.

I've committed the fix, so with any luck life will be better.

> P.S. out of curiosity - now that I have configured kernel with DDB and KDB 
> options, is there any performance penalty of running such kernel?

No, it shouldn't really have any effect on performance.  The one thing to 
watch out for is that your system will no longer reboot automatically on a 
panic, as it will drop to the debugger, by default.  You can change this by 
setting debug.debugger_on_panic to 0, in which case you will likely want to 
set debug.trace_on_panic to 1 so it prints a stack trace before rebooting 
(which is often sufficient, combined with the trap frame and panic message to 
debug the problem).

Right now these are sysctls, not tunables, but you can change the default 
using options KDB_UNATTENDED (which flips the default to not entering the 
debugger and rebooting) and options KDB_TRACE (which causes a trace to be 
printed on panic by default).  Probably they should also be tunables so that 
loader.conf entries will work.

Robert N M Watson
Computer Laboratory
University of Cambridge

More information about the freebsd-stable mailing list