Oh, bother! Fatal trap 12: page fault while in kernel mode
David Wolfskill
david at catwhisker.org
Tue Sep 2 06:29:09 PDT 2003
Running -CURRENT with sources updated between 0347 - 0356 hrs. PDT
(US/Pacific -- 7 hrs. west of GMT at this time of year) yesterday;
in the process of building today's -CURRENT. (Had a similar-looking
problem yesterday, but I got involved in some other things, and didn't
make the time to report it in any useful manner. So I backed off to
the previous day's kernel -- which I saved off, in case I might need it
again.)
I can let this sit for a bit, so if someone wants more specific info,
please send a note.
The machine is a dual-CPU box (2x886 MHz PIII; a single ATA disk drive);
been in service for a couple of years now, but spends a great deal of
time turned off (to reduce heat, noise, and electric bills).
It's set up to multi-boot: I track -STABLE daily on slice 1; I track
-CURRENT daily on slice 4. Thus, it is currently booted from /dev/ad0s4a.
Here's a cut/paste from the serial console:
Additional TCP options:.
Starting inetd.
Starting background file system checks in 60 seconds.
Tue Sep 2 06:05:00 PDT 2003
FreeBSD/i386 (freebeast.catwhisker.org) (cuaa0)
login:
Fatal trap 12: page fault while in kernel mode
cpuid = 1; lapic.id = 01000000
fault virtual address = 0xdeadc1e6
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc03071e2
stack pointer = 0x10:0xd96d5550
frame pointer = 0x10:0xd96d5580
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 = 1177 (collect2)
kernel: type 12 trap, code=0
Stopped at getdirtybuf+0x22: cmpl $0,0x108(%ebx)
db> tr
getdirtybuf(c468783c,0,1,1,d96d55b8) at getdirtybuf+0x22
flush_deplist(c46d0144,1,d96d55b8,d96d55bc,0) at flush_deplist+0x3d
flush_inodedep_deps(c4200000,322c0,c428fdb0,124,c03b8903) at flush_inodedep_deps+0x89
softdep_sync_metadata(d96d56f0,0,c03b8903,124,0) at softdep_sync_metadata+0x87
ffs_fsync(d96d56f0,c040d6c0,2b3,c03a6c2a,c040d6c0) at ffs_fsync+0x3b9
ffs_truncate(c428fdb0,400,0,804,c4407100) at ffs_truncate+0x6f9
ufs_direnter(c428fdb0,c47f0490,d96d5908,d96d5c00,0) at ufs_direnter+0x839
ufs_makeinode(8180,c428fdb0,d96d5bec,d96d5c00,180) at ufs_makeinode+0x274
ufs_create(d96d5a70,d96d5b2c,c024b597,d96d5a70,d96d5a6c) at ufs_create+0x39
ufs_vnoperate(d96d5a70,d96d5a6c,2,c04153e0,c43b4130) at ufs_vnoperate+0x18
vn_open_cred(d96d5bd8,d96d5cd8,180,c4407100,3) at vn_open_cred+0x187
vn_open(d96d5bd8,d96d5cd8,180,3,c03a10df) at vn_open+0x30
kern_open(c43b4130,805c120,0,a03,180) at kern_open+0x13a
open(c43b4130,d96d5d10,c03c06c7,3eb,3) at open+0x30
syscall(2f,2f,2f,805c120,805c129) at syscall+0x2b3
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (5, FreeBSD ELF32, open), eip = 0x280cd8cf, esp = 0xbfbff11c, ebp = 0xbfbff1c8 ---
db> show pcpu 0
cpuid = 0
curthread = 0xc150e980: pid 33 "pagezero"
curpcb = 0xd7173da0
fpcurthread = none
idlethread = 0xc1507980: pid 12 "idle: cpu0"
currentldt = 0x28
spin locks held:
db> show pcpu 1
cpuid = 1
curthread = 0xc43b4130: pid 1177 "collect2"
curpcb = 0xd96d5da0
fpcurthread = none
idlethread = 0xc1507850: pid 11 "idle: cpu1"
currentldt = 0x28
spin locks held:
db> panic
panic: from debugger
cpuid = 1; lapic.id = 01000000
boot() called on cpu#1
Uptime: 7m42s
pfs_vncache_unload(): 1 entries remaining
Shutting down ACPI
panic: absolutely cannot call smp_ipi_shootdown with interrupts already disabled
cpuid = 1; lapic.id = 01000000
boot() called on cpu#1
Uptime: 7m42s
kernel trap 12 with interrupts disabled
Fatal trap 12: page fault while in kernel mode
cpuid = 1; lapic.id = 01000000
fault virtual address = 0xdeadc0e2
fault code = supervisor write, page not present
instruction pointer = 0x8:0xc0202855
stack pointer = 0x10:0xd96d4f28
frame pointer = 0x10:0xd96d4f40
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = resume, IOPL = 0
current process = 1177 (collect2)
kernel: type 12 trap, code=0
Stopped at eventhandler_deregister+0x45: movl %eax,0x4(%edx)
db>
As noted, I'll leave it in this state for a bit, in case anyone wants me
to extract some more information from it; it doesn't look as if getting
a crash dump is going to happen (and apparently I wouldn't be able to
save it even if I got one).
Thanks....
Peace,
david
--
David H. Wolfskill david at catwhisker.org
If you want true virus-protection for your PC, install a non-Microsoft OS
on it. Plausible candidates include FreeBSD, Linux, NetBSD, OpenBSD, and
Solaris (in alphabetical order).
More information about the freebsd-current
mailing list