RELENG_5 panic

Doug White dwhite at gumbysoft.com
Mon May 23 10:43:49 PDT 2005


On Mon, 23 May 2005, Robin P. Blanchard wrote:

> Here's what I could get out of dmesg, and looking again at the dump
>
> # dmesg -M /usr/local/var/adm/crash/vmcore.44 -N /boot/kernel/kernel
> 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:0xc0504808
> stack pointer           = 0x10:0xc7ac0c08
> frame pointer           = 0x10:0xc7ac0c3c
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = resume, IOPL = 0
> current process         = 27 (swi5: clock sio)
> trap number             = 12
> panic: page fault
> cpuid = 0
> Uptime: 3d6h59m25s
> Dumping 127 MB
>  16 32 48 64 80 96 112
>
> root at robinpb [/usr/obj/usr/src/sys/fastipsec]# kgdb kernel.debug
> /usr/local/var/adm/crash/vmcore.44
> [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so:
> Undefined symbol "ps_pglobal_lookup"]
> 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".
> #0  doadump () at pcpu.h:160
> 160             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
> (kgdb) l *0xc0504808
> 0xc0504808 is in turnstile_wait (/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)

Oh another of these wonderful races... can you go to that frame and "print
ts"?  If its NULL then someone has ripped out the ts out from under us
since it was checked for NULL in the previous line!

>
> > -----Original Message-----
> > From: Doug White [mailto:dwhite at gumbysoft.com]
> > Sent: Sunday, May 22, 2005 3:20 PM
> > To: Robin P. Blanchard
> > Cc: stable at freebsd.org
> > Subject: Re: RELENG_5 panic
> >
> > On Sat, 21 May 2005, Robin P. Blanchard wrote:
> >
> > > # uname -a
> > > FreeBSD robinpb.homeip.net 5.4-STABLE FreeBSD 5.4-STABLE
> > #0: Tue May
> > > 17
> > > 00:30:47 EDT 2005
> > > root at bsdfs5.gactr.uga.edu:/usr/obj/usr/src/sys/fastipsec  i386
> > >
> > > # kgdb kernel.debug /usr/local/var/adm/crash/vmcore.44
> > > [GDB will not be able to debug user-mode threads:
> > /usr/lib/libthread_db.so:
> > > Undefined symbol "ps_pglobal_lookup"]
> > > 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".
> > > #0  doadump () at pcpu.h:160
> > > 160             __asm __volatile("movl %%fs:0,%0" : "=r" (td));
> > > (kgdb) bt full
> > > #0  doadump () at pcpu.h:160
> > > No locals.
> > > #1  0xc04dd58c in boot (howto=260) at
> > /usr/src/sys/kern/kern_shutdown.c:410
> > >         first_buf_printf = 1
> > > #2  0xc04ddccd in panic (fmt=0xc066e594 "%s") at
> > > /usr/src/sys/kern/kern_shutdown.c:566
> > >         bootopt = 260
> > >         newpanic = 0
> > >         buf = "page fault", '\0' <repeats 245 times>
> >
> > can you try to fish the trap output from msgbuf?  That or use
> > dmesg's -N and -M options to extract it from the crashdump.
> >
> > > #3  0xc0641e92 in trap_fatal (frame=0xc7ac0bc8, eva=36) at
> > > /usr/src/sys/i386/i386/trap.c:817
> > >         code = 16
> > >         type = 12
> > >         ss = 16
> > >         esp = 0
> > >         softseg = {ssd_base = 0, ssd_limit = 1048575,
> > ssd_type = 27,
> > > ssd_dpl = 0, ssd_p = 1,
> > >   ssd_xx = 0, ssd_xx1 = 0, ssd_def32 = 1, ssd_gran = 1}
> > > #4  0xc0642535 in trap (frame=
> > >       {tf_fs = 24, tf_es = -1066598384, tf_ds =
> > -1066532848, tf_edi =
> > > -1053916800, tf_esi = -1049515008, tf_ebp = -945025988, tf_isp =
> > > -945026060, tf_ebx = -1053916800, tf_edx = -1053937024,
> > tf_ecx = 56,
> > > tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip =
> > -1068480504, tf_cs =
> > > 8, tf_eflags = 65683, tf_esp = -1053914880, tf_ss = 582}) at
> > > /usr/src/sys/i386/i386/trap.c:255
> > >         p = (struct proc *) 0xc12e754c
> > >         sticks = 3241036032
> > >         i = 0
> > >         ucode = 0
> > >         type = 12
> > >         code = 0
> > >         eva = 36
> > > #5  0xc062da3a in calltrap () at
> > > /usr/src/sys/i386/i386/exception.s:140
> > > No locals.
> > > #6  0x00000018 in ?? ()
> > > No symbol table info available.
> > > #7  0xc06d0010 in ipq ()
> > > No symbol table info available.
> > > #8  0xc06e0010 in sc_buffer.3 ()
> > > No symbol table info available.
> > > #9  0xc12e8180 in ?? ()
> > > No symbol table info available.
> > > #10 0xc171ac00 in ?? ()
> > > No symbol table info available.
> > > #11 0xc7ac0c3c in ?? ()
> > > No symbol table info available.
> > > #12 0xc7ac0bf4 in ?? ()
> > > No symbol table info available.
> > > #13 0xc12e8180 in ?? ()
> > > No symbol table info available.
> > > #14 0xc12e3280 in ?? ()
> > > No symbol table info available.
> > > #15 0x00000038 in ?? ()
> > > No symbol table info available.
> > > #16 0x00000000 in ?? ()
> > > No symbol table info available.
> > > #17 0x0000000c in ?? ()
> > > No symbol table info available.
> > > #18 0x00000000 in ?? ()
> > > No symbol table info available.
> > > #19 0xc0504808 in turnstile_wait (ts=0xc12e3280, lock=0xc06d022c,
> > > owner=0xc171ac00)
> > >     at /usr/src/sys/kern/subr_turnstile.c:243
> > >         tc = (struct turnstile_chain *) 0xc06cb770
> > >         td1 = (struct thread *) 0xc12e8180 #20 0xc04d2b7f in
> > > _mtx_lock_sleep (m=0xc06d022c, td=0xc12e8180, opts=0, file=0x0,
> > > line=0)
> > >     at /usr/src/sys/kern/kern_mutex.c:552
> > >         ts = (struct turnstile *) 0x0
> > >         owner = (struct thread *) 0xc171ac00
> > >         v = 0
> > > #21 0xc058a592 in tcp_isn_tick (xtp=0x0) at
> > > /usr/src/sys/netinet/tcp_subr.c:1380
> > >         projected_offset = 0
> > > #22 0xc04ed069 in softclock (dummy=0x0) at
> > > /usr/src/sys/kern/kern_timeout.c:279
> > >         c_func = (void (*)(void *)) 0xc058a4d0 <tcp_isn_tick>
> > >         c_arg = (void *) 0x0
> > >         c_flags = 14
> > >         c = (struct callout *) 0x0
> > >         bucket = (struct callout_tailq *) 0xc39ba4a8
> > >         steps = 14
> > >         depth = 2
> > >         mpcalls = 2
> > >         gcalls = 0
> > >         wakeup_cookie = 14
> > > #23 0xc04c460a in ithread_loop (arg=0xc12fd500) at
> > > /usr/src/sys/kern/kern_intr.c:547
> > >         ih = (struct intrhand *) 0xc12e2c80
> > >         p = (struct proc *) 0xc12e754c
> > >         count = 0
> > >         warming = 5000
> > >         warned = 0
> > > #24 0xc04c32c2 in fork_exit (callout=0xc04c4550 <ithread_loop>,
> > > arg=0x0,
> > > frame=0x0)
> > >     at /usr/src/sys/kern/kern_fork.c:791
> > >         p = (struct proc *) 0xc12e754c
> > > #25 0xc062da9c in fork_trampoline () at
> > > /usr/src/sys/i386/i386/exception.s:209
> > > No locals.
> > > (kgdb)
> > >
> > >
> > >
> > > ---------------------------------------
> > > Robin P. Blanchard
> > > Systems Integration Specialist
> > > Georgia Center for Continuing Education
> > > fon: 706.542.2404 <-> fax: 706.542.6546
> > > ---------------------------------------
> > > _______________________________________________
> > > freebsd-stable at freebsd.org mailing list
> > > http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> > > To unsubscribe, send any mail to
> > "freebsd-stable-unsubscribe at freebsd.org"
> > >
> >
> > --
> > Doug White                    |  FreeBSD: The Power to Serve
> > dwhite at gumbysoft.com          |  www.FreeBSD.org
> >
>

-- 
Doug White                    |  FreeBSD: The Power to Serve
dwhite at gumbysoft.com          |  www.FreeBSD.org


More information about the freebsd-stable mailing list