Re: CD access panic on 5.2RC2 (similar to panic before for audio/data CD access)

From: Kaarthik Sivakumar <kaarthik_at_comcast.net>
Date: Sun, 14 Mar 2004 10:11:11 -0500
>>> "LE" == Lukas Ertl <le_at_FreeBSD.org> writes:
LE> On Sun, 14 Mar 2004, Kaarthik Sivakumar wrote:
>> The stacktrace is (copied by hand, so possibility of a typo exists):
>> 
>> devstat_remove_entry(c2ee3870, 0, 0, c2f0a600, d89a1ccc) at
>> devstat_remove_entry+0x83
>> g_destroy_provider(c2f0a600, c06542bc, c2f0a654, c2f0a600, c04b68a0)
>> at g_destroy_provider+0x48
>> g_orphan_register(c2f0a600, 0, c0654283, a6, 66666667) at
>> g_orphan_register+0x65
>> one_event(d89a1d10, c04b68c5, c06a0654, 0, 4c) at one_event+0xc0
>> g_run_events(c06a0654, 0, 4c, c06536b9, a) at g_run_events+0x15
>> g_event_procbody(0, d89a1d48, c0655a40, 311, 0) at
>> g_event_procbody+0x25
>> fork_exit(c04b68a0, 0, d89a1d48) at fork_exit+0x7e
>> fork_trampoline() at fork_trampoline+0x8
>> --- trap 0x1, eip = 0, esp = 0xd89a1d7c, ebp = 0 ---

LE> What's the panic message?  Would it be possible for you to get a coredump
LE> and a gdb backtrace out of that?

The panic message is as follows (again, copied by hand):

fatal trap 12: page fault while in kernel mode
fault virtual address = 0x1c, code = supervisor read, page not present
instruction pointer = 0x8:0xc0502923
stack pointer = 0x10:0xd89a1c84
frame pointer = 0x10:0xd89a1c98
code segment = base 0x0, limit 0xfffff, type 0x1b
             = DPL 0, pres 1, def32 1, gran 1 <= i suspect typos here
proc eflags = interrupt enabled, resume, IOPL=0
current proc = 2 (g_event)
kernel: type 12 trap, code = 0
Stopeed at devstat_remove_entry+0x83: cmpl %ebx, 0x1c(%edx)

Since this is repeatable, I will get a coredump and send it in soon.
Using a debug kernel, I actually tried to get the appropriate filename
and line number using gdb, and this is what I get. This should be help
in the meantime, I think. The line number given by gdb does seem
plausible, but I am not a kernel hacker.

kaarthik_at_the-saint:~:117>gdb /usr/src/sys/i386/compile/THE-SAINT/kernel.debug
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 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-unknown-freebsd"...
(gdb) l *(devstat_remove_entry+0x83)
0xc0502923 is in devstat_remove_entry (../../../kern/subr_devstat.c:198).
193
194             /* Remove this entry from the devstat queue */
195             atomic_add_acq_int(&ds->sequence1, 1);
196             if (ds->id == NULL) {
197                     devstat_num_devs--;
198                     STAILQ_REMOVE(devstat_head, ds, devstat, dev_links);
199             }
200             devstat_free(ds);
201             devstat_generation++;
202             mtx_unlock(&devstat_mutex);
(gdb)

Thanks.

kaarthik.
Received on Sun Mar 14 2004 - 06:11:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:47 UTC