kern/126002: Installing java/diablo-jdk15 crashes an amd64 machine

Kirk Strauser kirk at strauser.com
Sun Jul 27 20:50:03 UTC 2008


The following reply was made to PR kern/126002; it has been noted by GNATS.

From: Kirk Strauser <kirk at strauser.com>
To: Kris Kennaway <kris at FreeBSD.org>
Cc: freebsd-gnats-submit at FreeBSD.org
Subject: Re: kern/126002: Installing java/diablo-jdk15 crashes an amd64 machine
Date: Sun, 27 Jul 2008 15:47:56 -0500

 Here's what I came up with:
 
 $ sudo kgdb kernel.debug /var/tmp/vmcore.0
 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 "amd64-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	= 0x8
 fault code		= supervisor write data, page not present
 instruction pointer	= 0x8:0xffffffff8044ea20
 stack pointer	        = 0x10:0xffffffffafe239d0
 frame pointer	        = 0x10:0xffffff002350ea20
 code segment		= base 0x0, limit 0xfffff, type 0x1b
 			= DPL 0, pres 1, long 1, def32 0, gran 1
 processor eflags	= interrupt enabled, resume, IOPL = 0
 current process		= 2558 (make)
 trap number		= 12
 panic: page fault
 cpuid = 0
 Uptime: 28m24s
 Physical memory: 2034 MB
 Dumping 324 MB: 309 293 277 261 245 229 213 197 181 165 149 133 117  
 101 85 69 53 37 21 5
 
 Reading symbols from /boot/kernel/tmpfs.ko...Reading symbols from / 
 boot/kernel/tmpfs.ko.symbols...done.
 done.
 Loaded symbols for /boot/kernel/tmpfs.ko
 Reading symbols from /boot/kernel/pflog.ko...Reading symbols from / 
 boot/kernel/pflog.ko.symbols...done.
 done.
 Loaded symbols for /boot/kernel/pflog.ko
 Reading symbols from /boot/kernel/pf.ko...Reading symbols from /boot/ 
 kernel/pf.ko.symbols...done.
 done.
 Loaded symbols for /boot/kernel/pf.ko
 Reading symbols from /boot/kernel/linux.ko...Reading symbols from / 
 boot/kernel/linux.ko.symbols...done.
 done.
 Loaded symbols for /boot/kernel/linux.ko
 Reading symbols from /boot/kernel/nullfs.ko...Reading symbols from / 
 boot/kernel/nullfs.ko.symbols...done.
 done.
 Loaded symbols for /boot/kernel/nullfs.ko
 Reading symbols from /boot/kernel/fdescfs.ko...Reading symbols from / 
 boot/kernel/fdescfs.ko.symbols...done.
 done.
 Loaded symbols for /boot/kernel/fdescfs.ko
 Reading symbols from /boot/kernel/accf_http.ko...Reading symbols from / 
 boot/kernel/accf_http.ko.symbols...done.
 done.
 Loaded symbols for /boot/kernel/accf_http.ko
 #0  doadump () at pcpu.h:194
 194		__asm __volatile("movq %%gs:0,%0" : "=r" (td));
 (kgdb) list *0xffffffff8044ea20
 0xffffffff8044ea20 is in cpuset_rel (atomic.h:166).
 161	 */
 162	static __inline u_int
 163	atomic_fetchadd_int(volatile u_int *p, u_int v)
 164	{
 165	
 166		__asm __volatile(
 167		"	" MPLOCKED "		"
 168		"	xaddl	%0, %1 ;	"
 169		"# atomic_fetchadd_int"
 170		: "+r" (v),			/* 0 (result) */
 (kgdb) backtrace
 #0  doadump () at pcpu.h:194
 #1  0x0000000000000004 in ?? ()
 #2  0xffffffff8047e591 in boot (howto=260) at /usr/src/sys/kern/ 
 kern_shutdown.c:418
 #3  0xffffffff8047e9c2 in panic (fmt=0x104 <Address 0x104 out of  
 bounds>) at /usr/src/sys/kern/kern_shutdown.c:572
 #4  0xffffffff8072ca4a in trap_fatal (frame=0xffffff0003fdf000,  
 eva=18446742974791723232) at /usr/src/sys/amd64/amd64/trap.c:724
 #5  0xffffffff8072cdf1 in trap_pfault (frame=0xffffffffafe23920,  
 usermode=0) at /usr/src/sys/amd64/amd64/trap.c:641
 #6  0xffffffff8072d6af in trap (frame=0xffffffffafe23920) at /usr/src/ 
 sys/amd64/amd64/trap.c:410
 #7  0xffffffff807142ee in calltrap () at /usr/src/sys/amd64/amd64/ 
 exception.S:169
 #8  0xffffffff8044ea20 in cpuset_rel (set=0x0) at atomic.h:166
 #9  0xffffffff8048aa6c in thread_free (td=0xffffff00237a4360) at /usr/ 
 src/sys/kern/kern_thread.c:344
 #10 0xffffffff8048ab51 in thread_reap () at /usr/src/sys/kern/ 
 kern_thread.c:308
 #11 0xffffffff8045da4b in kern_wait (td=0xffffffffafe23b3c,  
 pid=Variable "pid" is not available.
 ) at /usr/src/sys/kern/kern_exit.c:787
 #12 0xffffffff8045e039 in wait4 (td=Variable "td" is not available.
 ) at /usr/src/sys/kern/kern_exit.c:654
 #13 0xffffffff8072d05c in syscall (frame=0xffffffffafe23c70) at /usr/ 
 src/sys/amd64/amd64/trap.c:852
 #14 0xffffffff807144fb in Xfast_syscall () at /usr/src/sys/amd64/amd64/ 
 exception.S:290
 #15 0x000000000041ee7c in ?? ()
 Previous frame inner to this frame (corrupt stack?)
 (kgdb) quit
 
 Is this enough information?  I'm a kgdb newbie and not too sure what  
 is needed.  I'll happily provide anything else you need.
 
 
 Side note 1 ----
 
 I was not able to save a crash dump to either of these drives:
 
 ad0: 715403MB <Hitachi HDS721075KLA330 GK8OA70M> at ata0-master SATA300
 ad8: 286167MB <WDC WD3000JB-00KFA0 08.05J08> at ata4-master UDMA100
 
 It would start writing, but each 16MB chunk seemed to be exponentially  
 slower than the last, so that after 5 or 6 chunks it was effectively  
 hung.   I ended up dumping to a USB keychain drive.
 
 
 Side note 2 ----
 
 The dumpon(8) man page says:
 
       The dumpon utility will refuse to enable a dump device which is  
 smaller
       than the total amount of physical memory as reported by the  
 hw.physmem
       sysctl(8) variable.
 
 I made a crash dump of a 2GB RAM system to a 512MB flash drive which  
 dumpon happily enabled.


More information about the freebsd-bugs mailing list