Re: R: Re: 6.4-RC2 crashes after a few minutes of uptime

2008-11-25 Thread Rory Arms

Ken,

I built a GENERIC debug kernel, and now have a backtrace that I can  
provide related to this problem on 6.4-RC2:


surfer# kgdb /sys/i386/compile/GENERIC/kernel.debug /var/crash/vmcore.1 
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:
acd0: WARNING - READ_TOC read data overrun 1812
kernel trap 12 with interrupts disabled


Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x78
fault code  = supervisor read, page not present
instruction pointer = 0x20:0xc06d39b9
stack pointer   = 0x28:0xca865c10
frame pointer   = 0x28:0xca865c14
code segment= base 0x0, limit 0xf, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags= resume, IOPL = 0
current process = 19 (swi6: task queue)
trap number = 12
panic: page fault
Uptime: 16m20s
Physical memory: 179 MB
Dumping 53 MB: 38 22 6

Reading symbols from /boot/kernel/snd_maestro.ko...done.
Loaded symbols for /boot/kernel/snd_maestro.ko
Reading symbols from /boot/kernel/sound.ko...done.
Loaded symbols for /boot/kernel/sound.ko
Reading symbols from /boot/kernel/acpi.ko...done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/mach64.ko...done.
Loaded symbols for /boot/kernel/mach64.ko
Reading symbols from /boot/kernel/drm.ko...done.
Loaded symbols for /boot/kernel/drm.ko
#0  doadump () at pcpu.h:165
165 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) bt
#0  doadump () at pcpu.h:165
#1  0xc06b2e3e in boot (howto=260) at ../../../kern/kern_shutdown.c:410
#2  0xc06b30d4 in panic (fmt=0xc098be6b %s)
at ../../../kern/kern_shutdown.c:566
#3  0xc092b1f4 in trap_fatal (frame=0xca865bd0, eva=120)
at ../../../i386/i386/trap.c:838
#4  0xc092a992 in trap (frame=
  {tf_fs = 8, tf_es = -1038352344, tf_ds = -1038352344, tf_edi =  
-1033627044, tf_esi = -1038289792, tf_ebp = -897164268, tf_isp =  
-897164292, tf_ebx = -1039268288, tf_edx = 0, tf_ecx = 4, tf_eax =  
-1038289760, tf_trapno = 12, tf_err = 0, tf_eip = -1066583623, tf_cs =  
32, tf_eflags = 589826, tf_esp = -1038289792, tf_ss = -897164232})  
at ../../../i386/i386/trap.c:270

#5  0xc0917e2a in calltrap () at ../../../i386/i386/exception.s:139
#6  0xc06d39b9 in turnstile_setowner (ts=0xc20e0640, owner=0x4)
at ../../../kern/subr_turnstile.c:456
#7  0xc06d3d16 in turnstile_wait (lock=0xc2641aa8, owner=0x4, queue=0)
at ../../../kern/subr_turnstile.c:661
#8  0xc06a9d2a in _mtx_lock_sleep (m=0xc2641aa8, tid=3256677504, opts=0,
file=0x0, line=0) at ../../../kern/kern_mutex.c:579
#9  0xc06b2492 in _sema_post (sema=0xc2641aa8, file=0x0, line=0)
at ../../../kern/kern_sema.c:79
#10 0xc04e7c26 in ata_completed (context=0xc2641a5c, dummy=1)
at ../../../dev/ata/ata-queue.c:481
---Type return to continue, or q return to quit---
#11 0xc06d29a3 in taskqueue_run (queue=0xc21c4100)
at ../../../kern/subr_taskqueue.c:257
#12 0xc06d2bb6 in taskqueue_swi_run (dummy=0x0)
at ../../../kern/subr_taskqueue.c:299
#13 0xc069baad in ithread_execute_handlers (p=0xc21ce860, ie=0xc21c4080)
at ../../../kern/kern_intr.c:682
#14 0xc069bbc8 in ithread_loop (arg=0xc214cb60)
at ../../../kern/kern_intr.c:766
#15 0xc069aa34 in fork_exit (callout=0xc069bb74 ithread_loop,
arg=0xc214cb60, frame=0xca865d38) at ../../../kern/kern_fork.c:788
#16 0xc0917e8c in fork_trampoline () at ../../../i386/i386/exception.s: 
208

(kgdb) print panicstr
$1 = 0xc0a8d480 page fault
(kgdb)

This panic happened just a few minutes after bootup completed, without  
logging on.


Also, I've noticed that sometimes when the panic happens, savecore(8)  
seems to be unable to recover the coredump in the swap area. I noticed  
that on the bootup, the system seems to engage the swap partition well  
before savecore(8) has a chance to scan it. So, I wondered if it's  
possible that maybe that when swap is being engaged, it may be writing  
something to the swap partition, effectively overwriting the signature  
that savecore(8) checks, to detect the existence of a core dump?


To recap (in case this doesn't get attached to the original thread)
As I said in the original message, another odd thing about this, is  
that usually after it crashes on the first (and sometimes second) cold  
boot, it will remain stable till the machine is shut down.


And as I think I also mentioned, once logged into GNOME, I see that a  
blank disc icon flashes off and on on the desktop, as if the system  
detects the existence of a CD in the drive, so that might be related.  
Though, this also happened with 

Re: R: Re: R: Re: 6.4-RC2 crashes after a few minutes of uptime

2008-11-24 Thread Rory Arms


On 2008-11-24, at 1:51 , Barbara wrote:


About kgdb...
I never used freebsd-update, so sorry if I'm saying



something

stupid, but could it be the case that the kernel has been



built

without debugging symbols or something like that? Does freebsd-




update provide a kernel.debug?


I haven't had to use a the kernel.

debug file

in the obj dir in a long

time. As far as I know, these days,

the GENERIC

kernel includes debug

symbols. And in cases when there

aren't any debug

symbols, that

shouldn't prevent kgdb from loading, I

wouldn't think.


Hello,

I had a k panic some hours ago but I think

that's related to a

problem with one
of my HDs.

I've got a dump

in /var/crash, and as you were interested, I run:



  # kgdb

/boot/kernel/kernel /var/crash/vmcore.6



  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...(no debugging

symbols found)...


  Attempt to extract a
component of a value that is

not a structure pointer.


  Attempt to extract a
component of a value

that is not a structure pointer.


  Attempt to extract a
component of

a value that is not a structure pointer.


  Attempt to extract a


component of a value that is not a structure pointer.


  Terminated





I had
to pkill kgdb as it was in a loop.

Running it against kernel.

debug in

/usr/obj/usr/src/sys/$KERNCONF/ worked as expected.
I've always

followed this

way, so I don't know if it was working with earlier releases.




Ah, well you must not be using GENERIC then, because it does have the



debugging symbols.

I think this is the setting in the GENERIC config that

controls it:


makeoptions DEBUG=-g

But I guess what you're doing works if

you're using a custom kernel

that does not have that config setting.

-

rory




I'm not using GENERIC but I have
makeoptions DEBUG=-g
in my KERNCONF.


Barbara,

Ah, so you had the exact same results I got, when using /book/kernel/ 
kernel. So, that answers that question then, apparently I do need to  
build a kernel.debug to get a backtrace on 6.4.


So, it looks like maybe things are different in 6 than I had  
remembered. I haven't looked at the 6.4-RC2 notebook to see what the  
kernel directory has, but on my 7.0 server at least, I've noticed that  
kgdb(1) does work with /book/kernel/kernel, and I think it might have  
to do with putting the symbols in a separate, kernel.symbols file. So,  
I assume that this doesn't exist on 6. However I did notice that if I  
remove that file, and run kgdb again (on 7.0) I also get that  
structure pointer error that you get, it doesn't lock up.. and I can  
still get a backtrace, but the output is more terse.. in that it shows  
function names, but without corresponding source file names and line  
numbers. So, the addition of the symbols file it seems, adds some some  
more debugging information than what the kernel provides by itself.


So, maybe that makeoptions directive does different things on each  
version.


Thank you for your feedback with this, much appreciated. Now, to see  
if I can build a kernel.debug on that machine, can get a backtrace --  
though it sure sounds like a problem with ata(4).


- rory
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: R: Re: 6.4-RC2 crashes after a few minutes of uptime

2008-11-23 Thread Rory Arms


On 2008-11-23, at 18:36 , Barbara wrote:


About kgdb...
I never used freebsd-update, so sorry if I'm saying

something

stupid, but could it be the case that the kernel has been

built

without debugging symbols or something like that? Does freebsd-


update provide a kernel.debug?


I haven't had to use a the kernel.debug file

in the obj dir in a long

time. As far as I know, these days, the GENERIC

kernel includes debug

symbols. And in cases when there aren't any debug

symbols, that

shouldn't prevent kgdb from loading, I wouldn't think.


Hello,

I had a k panic some hours ago but I think that's related to a  
problem with one

of my HDs.

I've got a dump in /var/crash, and as you were interested, I run:


   # kgdb /boot/kernel/kernel /var/crash/vmcore.6


   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...(no debugging symbols found)...

   Attempt to extract a
component of a value that is not a structure pointer.

   Attempt to extract a
component of a value that is not a structure pointer.

   Attempt to extract a
component of a value that is not a structure pointer.

   Attempt to extract a
component of a value that is not a structure pointer.

   Terminated


I had
to pkill kgdb as it was in a loop.

Running it against kernel.debug in
/usr/obj/usr/src/sys/$KERNCONF/ worked as expected.
I've always followed this
way, so I don't know if it was working with earlier releases.


Ah, well you must not be using GENERIC then, because it does have the  
debugging symbols.


I think this is the setting in the GENERIC config that controls it:

makeoptions DEBUG=-g

But I guess what you're doing works if you're using a custom kernel  
that does not have that config setting.


- rory
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


R: Re: R: Re: 6.4-RC2 crashes after a few minutes of uptime

2008-11-23 Thread Barbara
 About kgdb...
 I never used freebsd-update, so sorry if I'm saying
 
something
 stupid, but could it be the case that the kernel has been
 
built
 without debugging symbols or something like that? Does freebsd-


 update provide a kernel.debug?

 I haven't had to use a the kernel.
debug file
 in the obj dir in a long
 time. As far as I know, these days, 
the GENERIC
 kernel includes debug
 symbols. And in cases when there 
aren't any debug
 symbols, that
 shouldn't prevent kgdb from loading, I 
wouldn't think.

 Hello,

 I had a k panic some hours ago but I think 
that's related to a  
 problem with one
 of my HDs.

 I've got a dump 
in /var/crash, and as you were interested, I run:


# kgdb 
/boot/kernel/kernel /var/crash/vmcore.6


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...(no debugging 
symbols found)...

Attempt to extract a
 component of a value that is 
not a structure pointer.

Attempt to extract a
 component of a value 
that is not a structure pointer.

Attempt to extract a
 component of 
a value that is not a structure pointer.

Attempt to extract a
 
component of a value that is not a structure pointer.

Terminated



 I had
 to pkill kgdb as it was in a loop.

 Running it against kernel.
debug in
 /usr/obj/usr/src/sys/$KERNCONF/ worked as expected.
 I've always 
followed this
 way, so I don't know if it was working with earlier releases.


Ah, well you must not be using GENERIC then, because it does have the  

debugging symbols.

I think this is the setting in the GENERIC config that 
controls it:

makeoptionsDEBUG=-g

But I guess what you're doing works if 
you're using a custom kernel  
that does not have that config setting.

- 
rory


I'm not using GENERIC but I have 
makeoptions DEBUG=-g
in my KERNCONF.

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]