Panic during boot (in_arpinput).

From: Ian FREISLICH <if_at_hetzner.co.za>
Date: Tue, 14 Nov 2006 15:38:38 +0200
Hi

I have 2 servers each with 255 vlan interfaces and carp interfaces
in each vlan.During the boot up while it's configuring the interfaces,
it reliably panics.  It boots fine if no network cables are plugged
in (and in the test evironment on a quient lan).

It's an SMP machine.  My guess (from the panic message below) is
that an arp query arives on an interface it's in the middle of
creating or something like that (highly unsophisticated debugging
conjecture).

In the mean time I'm going to try a UP kernel and see if that masks
the problem.

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x5f
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc058e18b
stack pointer           = 0x28:0xe34d9bb0
frame pointer           = 0x28:0xe34d9c2c
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         = 14 (swi1: net)
trap number             = 12
panic: page fault
cpuid = 0
KDB: stack backtrace:
db_trace_self_wrapper(c06830f9,e34d9a74,c04eff40,c0695d9f,0,...) at db_trace_sel
f_wrapper+0x27
kdb_backtrace(c0695d9f,0,c067664b,e34d9a80,80,...) at kdb_backtrace+0x2f
panic(c067664b,c0696cfe,c49135fc,1,1,...) at panic+0x129
trap_fatal(e34d9b70,5f,1,0,e34d9ae4,...) at trap_fatal+0x332
trap_pfault(e34d9b70,0,5f,b,5f,...) at trap_pfault+0x232
trap(c06e0008,c4910028,e34d0028,0,c4e57800,...) at trap+0x3cb
calltrap() at calltrap+0x5
--- trap 0xc, eip = 0xc058e18b, esp = 0xe34d9bb0, ebp = 0xe34d9c2c ---
in_arpinput(c4fc3200,c04e3a0f,c06e5424,0,c4fc3200,...) at in_arpinput+0x123
arpintr(c4fc3200,c06e5424,0,c4914c40,e34d9c70,...) at arpintr+0xfb
netisr_processqueue(c06ed4f8,c4914540,c4914c40,c4914c40,c4913460,...) at netisr_
processqueue+0xcc
swi_net(0,c4914c40,246,0,c4914c40,...) at swi_net+0x125
ithread_execute_handlers(c4913460,c496e480,0,0,0,...) at ithread_execute_handler
s+0x165
ithread_loop(c48f6810,e34d9d38,7fdec364,3ae77ec0,3940eec5,...) at ithread_loop+0
x64
fork_exit(c04d405d,c48f6810,e34d9d38) at fork_exit+0x83
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xe34d9d6c, ebp = 0 ---
Uptime: 9m35s
Physical memory: 2039 MB
Dumping 64 MB: 49 33 17 1
(kgdb) bt
#0  doadump () at pcpu.h:166
#1  0xc04efc20 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:411
#2  0xc04effff in panic (fmt=0xc067664b "%s")
    at /usr/src/sys/kern/kern_shutdown.c:567
#3  0xc06508e3 in trap_fatal (frame=0xe34d9b70, eva=95)
    at /usr/src/sys/i386/i386/trap.c:869
#4  0xc065058d in trap_pfault (frame=0xe34d9b70, usermode=0, eva=95)
    at /usr/src/sys/i386/i386/trap.c:778
#5  0xc06500ff in trap (frame=
      {tf_fs = -1066532856, tf_es = -997130200, tf_ds = -481492952, tf_edi = 0, tf_esi = -991594496, tf_ebp = -481453012, tf_isp = -481453156, tf_ebx = 3, tf_edx = 314, tf_ecx = -1, tf_eax = -996395008, tf_trapno = 12, tf_err = 0, tf_eip = -1067916917, tf_cs = 32, tf_eflags = 66118, tf_esp = -481453064, tf_ss = -989906900}) at /usr/src/sys/i386/i386/trap.c:463
#6  0xc063771a in calltrap () at /usr/src/sys/i386/i386/exception.s:138
#7  0xc058e18b in in_arpinput (m=0xc4fc3200)
    at /usr/src/sys/netinet/if_ether.c:635
#8  0xc058e058 in arpintr (m=0xc4fc3200)
    at /usr/src/sys/netinet/if_ether.c:552
#9  0xc0586213 in netisr_processqueue (ni=0xc06ed4f8)
    at /usr/src/sys/net/netisr.c:236
#10 0xc0586464 in swi_net (dummy=0x0) at /usr/src/sys/net/netisr.c:349
#11 0xc04d3f7b in ithread_execute_handlers (p=0xc4913460, ie=0xc496e480)
    at /usr/src/sys/kern/kern_intr.c:666
---Type <return> to continue, or q <return> to quit--- 
#12 0xc04d40c1 in ithread_loop (arg=0xc48f6810)
    at /usr/src/sys/kern/kern_intr.c:749
#13 0xc04d2914 in fork_exit (callout=0xc04d405d <ithread_loop>, 
    arg=0xc49c3800, frame=0xc49c3800) at /usr/src/sys/kern/kern_fork.c:834
#14 0xc063777c in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:199
(kgdb) frame 7
#7  0xc058e18b in in_arpinput (m=0xc4fc3200)
    at /usr/src/sys/netinet/if_ether.c:635
635                     if (((bridged && ia->ia_ifp->if_bridge != NULL) ||
(kgdb) l
630              * is part of carp, we call carp_iamatch to see if this is a
631              * request for the virtual host ip.
632              * XXX: This is really ugly!
633              */
634             LIST_FOREACH(ia, INADDR_HASH(itaddr.s_addr), ia_hash) {
635                     if (((bridged && ia->ia_ifp->if_bridge != NULL) ||
636                         (ia->ia_ifp == ifp)) &&
637                         itaddr.s_addr == ia->ia_addr.sin_addr.s_addr)
638                             goto match;
639     #ifdef DEV_CARP
(kgdb) print bridged
$1 = 0
(kgdb) print ia->ia_ifp
There is no member named ia_ifp.
(kgdb) print ia
$2 = (struct in_ifaddr *) 0x3

Ian

--
Ian Freislich
Received on Tue Nov 14 2006 - 12:38:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:02 UTC