FBSD7.1-Stable: panic: page fault in nat_new

Mikołaj Goj m.goj at trans.net.pl
Wed Jan 28 17:16:06 PST 2009


Hello,
three days ago I installed new FreeBSD 7.1-Stable on my HP Proliant 
ML110 G5 server. I compiled custom kernel that fit my needs, but 
something is not working as should be. During past three days I had two 
kernel panics already. Unfortunately I am good in programming so all I 
can do is to send you some dbug data (included below). I have compiled 
ipnat with #define  LARGE_NAT and #define DEF_NAT_AGE     300. 
Appreciate for your help.

regards
Nikolas


GNU gdb 6.1.1 [FreeBSD]
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:


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x4
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc049c637
stack pointer           = 0x28:0xe5769994
frame pointer           = 0x28:0xe5769a0c
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         = 23 (em0 taskq)
trap number             = 12
panic: page fault
cpuid = 0
Uptime: 13h7m47s
Physical memory: 2034 MB
Dumping 229 MB: 214 198 182 166 150 134 118 102 86 70 54 38 22 6

Reading symbols from /boot/kernel/acpi.ko...Reading symbols from 
/boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
#0  doadump () at pcpu.h:196
196             __asm __volatile("movl %%fs:0,%0" : "=r" (td));

----------------------------------------------------------------------------------------------------
0xc049c637 is in nat_new 
(/usr/src/sys/contrib/ipfilter/netinet/ip_nat.c:2577).
2572            nat->nat_ifps[1] = np->in_ifps[1];
2573            nat->nat_ptr = np;
2574            nat->nat_p = fin->fin_p;
2575            nat->nat_mssclamp = np->in_mssclamp;
2576            if (nat->nat_p == IPPROTO_TCP)
2577                    nat->nat_seqnext[0] = ntohl(tcp->th_seq);
2578
2579            if ((np->in_apr != NULL) && ((ni->nai_flags & NAT_SLAVE) 
== 0))
2580                    if (appr_new(fin, nat) == -1)
2581                            return -1;

-------------------------------------------------------------------------------------------------
#0  doadump () at pcpu.h:196
#1  0xc074f537 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418
#2  0xc074f809 in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:574
#3  0xc0a400cc in trap_fatal (frame=0xe5769954, eva=4) at 
/usr/src/sys/i386/i386/trap.c:939
#4  0xc0a40350 in trap_pfault (frame=0xe5769954, usermode=0, eva=4) at 
/usr/src/sys/i386/i386/trap.c:852
#5  0xc0a40d0c in trap (frame=0xe5769954) at 
/usr/src/sys/i386/i386/trap.c:530
#6  0xc0a26b7b in calltrap () at /usr/src/sys/i386/i386/exception.s:159
#7  0xc049c637 in nat_new (fin=0xe5769a84, np=0xc562b400, natsave=0x0, 
flags=Variable "flags" is not available.
) at /usr/src/sys/contrib/ipfilter/netinet/ip_nat.c:2577
#8  0xc04a0ba2 in fr_checknatin (fin=0xe5769a84, passp=0xe5769a80) at 
/usr/src/sys/contrib/ipfilter/netinet/ip_nat.c:4122
#9  0xc0492687 in fr_check (ip=0xc5804010, hlen=20, ifp=0xc523e800, 
out=0, mp=0xe5769b6c) at /usr/src/sys/contrib/ipfilter/netinet/fil.c:2572
#10 0xc04951af in fr_check_wrapper (arg=0x0, mp=0xe5769b6c, 
ifp=0xc523e800, dir=1) at 
/usr/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c:178
#11 0xc07f7d68 in pfil_run_hooks (ph=0xc0bdda80, mp=0xe5769bc4, 
ifp=0xc523e800, dir=1, inp=0x0) at /usr/src/sys/net/pfil.c:78
#12 0xc08274b1 in ip_input (m=0xc5657400) at 
/usr/src/sys/netinet/ip_input.c:417
#13 0xc07f56a5 in netisr_dispatch (num=2, m=0xc5657400) at 
/usr/src/sys/net/netisr.c:185
#14 0xc07ec671 in ether_demux (ifp=0xc523e800, m=0xc5657400) at 
/usr/src/sys/net/if_ethersubr.c:834
#15 0xc07eca63 in ether_input (ifp=0xc523e800, m=0xc5657400) at 
/usr/src/sys/net/if_ethersubr.c:692
#16 0xc057fd9a in em_rxeof (adapter=0xc524b000, count=97) at 
/usr/src/sys/dev/e1000/if_em.c:4539
#17 0xc05808c7 in em_handle_rxtx (context=0xc524b000, pending=1) at 
/usr/src/sys/dev/e1000/if_em.c:1702
#18 0xc0782945 in taskqueue_run (queue=0xc523c780) at 
/usr/src/sys/kern/subr_taskqueue.c:282
#19 0xc0782b4b in taskqueue_thread_loop (arg=0xc524f35c) at 
/usr/src/sys/kern/subr_taskqueue.c:401
#20 0xc0729fe9 in fork_exit (callout=0xc0782a90 <taskqueue_thread_loop>, 
arg=0xc524f35c, frame=0xe5769d38) at /usr/src/sys/kern/kern_fork.c:804
#21 0xc0a26bf0 in fork_trampoline () at 
/usr/src/sys/i386/i386/exception.s:264

--------------------------------------------------------------------------------------------------
# nm -n kernel |grep c049c
c049c860 T nat_delete
c049cb60 t nat_flush_entry
c049cb80 t nat_extraflush
c049cd50 T fr_natderef
c049cf00 t nat_flushtable
c049cf90 T fr_natunload


More information about the freebsd-bugs mailing list