From owner-freebsd-current@FreeBSD.ORG Wed Nov 15 07:24:38 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2650F16A403 for ; Wed, 15 Nov 2006 07:24:38 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id D248643D64 for ; Wed, 15 Nov 2006 07:24:37 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 47C9146BC2; Wed, 15 Nov 2006 02:24:37 -0500 (EST) Date: Wed, 15 Nov 2006 07:24:37 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Ian FREISLICH In-Reply-To: Message-ID: <20061115072404.C79655@fledge.watson.org> References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: current@freebsd.org Subject: Re: Panic during boot (in_arpinput). X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Nov 2006 07:24:38 -0000 On Wed, 15 Nov 2006, Ian FREISLICH wrote: > Ian FREISLICH wrote: >> >> 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. > > FWIW, a UP kernel has the same problem. What happens if you disable PREEMPTION on UP and try the same thing again? Robert N M Watson Computer Laboratory University of Cambridge > >> 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 neti > sr_ >> processqueue+0xcc >> swi_net(0,c4914c40,246,0,c4914c40,...) at swi_net+0x125 >> ithread_execute_handlers(c4913460,c496e480,0,0,0,...) at ithread_execute_hand > ler >> s+0x165 >> ithread_loop(c48f6810,e34d9d38,7fdec364,3ae77ec0,3940eec5,...) at ithread_loo > p+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, t > f_edx = 314, tf_ecx = -1, tf_eax = -996395008, tf_trapno = 12, tf_err = 0, tf_e > ip = -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 to continue, or q 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 , >> 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:19 > 9 >> (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 > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >