kernel trap 12 on a freebsd 5.4----help

chomette at ensil.unilim.fr chomette at ensil.unilim.fr
Tue Nov 29 14:59:39 GMT 2005


Hi
I've got a freebsd 5.4 nfs server (dell poweredge 1600SC bi Xeon/1go RAM/
6 SCSI 36go/intel em) exporting home directory to 80 clients
(mandrake,rh,gentoo,hp-ux)
This server crash randomly (it can run 2 weeks or crash 2 time per day).
I've tried differentes things such as :
- upgrading memory to 2Go
- changing SCSI disks
- tuning witch sysctl (udp.recvspace,ipc.maxsockbuf,maxfilesperproc...)
- upgrading to the last dell firmeware
but it still crash.
I've setup for tring to debugg with a kernel crash dump (I'm newbie for
debugging) using the developer handbook.


when I run :
kgdb kernel.debug /var/crash/vmcore.9
the result is:

Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".

Unread portion of the kernel message buffer:
kernel trap 12 with interrupts disabled


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x24
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc04f56e7
stack pointer           = 0x10:0xf0ed3afc
frame pointer           = 0x10:0xf0ed3b10
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = resume, IOPL = 0
current process         = 65 (swi1: net)
trap number             = 12
panic: page fault
cpuid = 0
boot() called on cpu#0
Uptime: 1h49m41s
Dumping 1023 MB
 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320
336 352 368 384 400 416 432 448 464 480 496 512 528 544 560 576 592 608
624 640 656 672 688 704 720 736 752 768 784 800 816 832 848 864 880 896
912 928 944 960 976 992 1008

#0  doadump () at pcpu.h:160
160             __asm __volatile("movl %%fs:0,%0" : "=r" (td));

(kgdb) list *0xc04f56e7
0xc04f56e7 is in propagate_priority (/usr/src/sys/kern/subr_turnstile.c:245).
240                     /*
241                      * Pick up the lock that td is blocked on.
242                      */
243                     ts = td->td_blocked;
244                     MPASS(ts != NULL);
245                     tc = TC_LOOKUP(ts->ts_lockobj);
246                     mtx_lock_spin(&tc->tc_lock);
247
248                     /*
249                      * This thread may not be blocked on this
turnstile anymore

(kgdb) backtrace
#0  doadump () at pcpu.h:160
#1  0xc04d6449 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:412
#2  0xc04d679d in panic (fmt=0xc067afc4 "%s") at
/usr/src/sys/kern/kern_shutdown.c:568
#3  0xc064f50c in trap_fatal (frame=0xf0ed3abc, eva=36) at
/usr/src/sys/i386/i386/trap.c:817
#4  0xc064ec51 in trap (frame=
      {tf_fs = -1040908264, tf_es = -1037500400, tf_ds = -1035468784,
tf_edi = -1037485440, tf_esi = -1041024768, tf_ebp = -252888304,
tf_isp = -252888344, tf_ebx = -1041024768, tf_edx = -1040605912,
tf_ecx = -1040605760, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip
= -1068542233, tf_cs = 8, tf_eflags = 65683, tf_esp = 40, tf_ss =
0}) at /usr/src/sys/i386/i386/trap.c:255
#5  0xc063d20a in calltrap () at /usr/src/sys/i386/i386/exception.s:140
#6  0xc1f50018 in ?? ()
#7  0xc2290010 in ?? ()
#8  0xc2480010 in ?? ()
#9  0xc2293a80 in ?? ()
#10 0xc1f33900 in ?? ()
#11 0xf0ed3b10 in ?? ()
#12 0xf0ed3ae8 in ?? ()
#13 0xc1f33900 in ?? ()
#14 0xc1f99d28 in ?? ()
#15 0xc1f99dc0 in ?? ()
#16 0x00000000 in ?? ()
#17 0x0000000c in ?? ()
#18 0x00000000 in ?? ()
#19 0xc04f56e7 in propagate_priority (td=0xc2293a80) at
/usr/src/sys/kern/subr_turnstile.c:243
#20 0xc04f5ea1 in turnstile_wait (ts=0xc1f99dc0, lock=0xc06f8a60,
owner=0xc2293a80) at /usr/src/sys/kern/subr_turnstile.c:556
#21 0xc04cda71 in _mtx_lock_sleep (m=0xc06f8a60, td=0xc1f33900, opts=0,
file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:552
#22 0xc05c4352 in nfsrv_rcv (so=0xc23aa798, arg=0xc1f65880, waitflag=1) at
/usr/src/sys/nfsserver/nfs_srvsock.c:443
#23 0xc0510e35 in sowakeup (so=0xc23aa798, sb=0xc23aa7e8) at
/usr/src/sys/kern/uipc_socket2.c:406
#24 0xc0574e40 in udp_append (last=0xc23ad654, ip=0xc279f010,
n=0xc2404200, off=28, udp_in=0xf0ed3c50) at
/usr/src/sys/netinet/udp_usrreq.c:478
#25 0xc0574beb in udp_input (m=0xc2404200, off=20) at
/usr/src/sys/netinet/udp_usrreq.c:387
#26 0xc05612a1 in ip_input (m=0xc2404200) at
/usr/src/sys/netinet/ip_input.c:776
#27 0xc0548f73 in netisr_processqueue (ni=0xc06ebeb8) at
/usr/src/sys/net/netisr.c:235
#28 0xc054916e in swi_net (dummy=0x0) at /usr/src/sys/net/netisr.c:348
#29 0xc04c2229 in ithread_loop (arg=0xc1f65a80) at
/usr/src/sys/kern/kern_intr.c:547
#30 0xc04c12c5 in fork_exit (callout=0xc04c20d0 <ithread_loop>,
arg=0xc1f65a80, frame=0xf0ed3d38) at /usr/src/sys/kern/kern_fork.c:791
#31 0xc063d26c in fork_trampoline () at
/usr/src/sys/i386/i386/exception.s:209



Does anybody have an idea?
Thank's for your help

best regards

ps:sorry for my poor english















More information about the freebsd-stable mailing list