trap 12: supervisor write, page not present on 6.1-STABLE Tue May 16 2006

Robert Watson rwatson at FreeBSD.org
Tue Jun 27 13:11:45 UTC 2006


On Tue, 27 Jun 2006, Stanislaw Halik wrote:

> 6.1-STABLE crashed on me. I'm providing a backtrace. Could any of you, 
> experienced people, suggest me if it's a hardware problem or is it an error 
> inside the OS?

This is a known bug in the TCP code; a large set of outstanding changes is 
present in 7.x that will fix the problem when merged.  However, I recently had 
push-back on merging the larger batch of changes, so am looking at merging a 
workaround that will also correct the problem without the larger set of 
architectural changes.  I hope to have a chance to look at that in detail this 
weekend.

Thanks,

Robert N M Watson
Computer Laboratory
University of Cambridge

>
> -->--
> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x58
> fault code              = supervisor write, page not present
> instruction pointer     = 0x20:0xc058e01a
> stack pointer           = 0x28:0xd68d5acc
> frame pointer           = 0x28:0xd68d5b04
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                        = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 42435 (rtorrent)
> trap number             = 12
> panic: page fault
> Uptime: 24d18h34m6s
> Dumping 511 MB (2 chunks)
>  chunk 0: 1MB (160 pages) ... ok
>  chunk 1: 511MB (130816 pages) 496 480 464 448 432 416 400 384 368 352 336 320 304 288 272 256 240 224 208 192 176 160 144 128 112 96 80 64 48 32 16
>
> #0  doadump () at pcpu.h:165
> 165             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
> (kgdb) bt
> #0  doadump () at pcpu.h:165
> #1  0xc04d609c in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
> #2  0xc04d63e9 in panic (fmt=0xc06817e7 "%s") at /usr/src/sys/kern/kern_shutdown.c:565
> #3  0xc066347c in trap_fatal (frame=0xd68d5a8c, eva=0) at /usr/src/sys/i386/i386/trap.c:836
> #4  0xc0663152 in trap_pfault (frame=0xd68d5a8c, usermode=0, eva=88) at /usr/src/sys/i386/i386/trap.c:744
> #5  0xc0662d0f in trap (frame=
>      {tf_fs = 892993544, tf_es = -1014235096, tf_ds = -1024327640, tf_edi = 0, tf_esi = 0, tf_ebp = -695379196, tf_isp = -695379272, tf_ebx = -695378816, tf_edx = -695378544, tf_ecx = 0, tf_eax = 8, tf_trapno = 12, tf_err = 2, tf_eip = -1067917286, tf_cs = 32, tf_eflags = 2163335, tf_esp = -695378816, tf_ss = -695379220}) at /usr/src/sys/i386/i386/trap.c:434
> #6  0xc0653cfa in calltrap () at /usr/src/sys/i386/i386/exception.s:139
> #7  0xc058e01a in ip_ctloutput (so=0xd68d5d90, sopt=0xd68d5c80) at /usr/src/sys/netinet/ip_output.c:1210
> #8  0xc059f7df in tcp_ctloutput (so=0xc35fb6f4, sopt=0xd68d5c80) at /usr/src/sys/netinet/tcp_usrreq.c:1038
> #9  0xc051d867 in sosetopt (so=0xc35fb6f4, sopt=0xd68d5c80) at /usr/src/sys/kern/uipc_socket.c:1560
> #10 0xc05246b9 in kern_setsockopt (td=0xc38c6780, s=8, level=8, name=8, val=0xbfbfe61c, valseg=UIO_USERSPACE, valsize=0)
>    at /usr/src/sys/kern/uipc_syscalls.c:1351
> #11 0xc05245be in setsockopt (td=0x8, uap=0xd68d5d90) at /usr/src/sys/kern/uipc_syscalls.c:1307
> #12 0xc0663870 in syscall (frame=
>      {tf_fs = 139198523, tf_es = 138412091, tf_ds = -1078001605, tf_edi = -1077942700, tf_esi = -1077942700, tf_ebp = -1077942744, tf_isp = -695378588, tf_ebx = 673057632, tf_edx = 0, tf_ecx = 0, tf_eax = 105, tf_trapno = 0, tf_err = 2, tf_eip = 676107131, tf_cs = 51, tf_eflags = 2097734, tf_esp = -1077942788, tf_ss = 59}) at /usr/src/sys/i386/i386/trap.c:981
> #13 0xc0653d4f in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200
> #14 0x00000033 in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> --<--
>
> Thanks in advance for any feedback.
>
> -- 
> Stanislaw Halik
>


More information about the freebsd-stable mailing list