Oh, bother! Fatal trap 12: page fault while in kernel mode

From: David Wolfskill <david_at_catwhisker.org>
Date: Tue, 2 Sep 2003 06:29:07 -0700 (PDT)
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).
Received on Tue Sep 02 2003 - 04:29:09 UTC

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