Subject: -current amd64 kernel diagnostic assertion in sys/uvm/uvm_page.c
To: NetBSD current <current-users@NetBSD.org>
From: Nicolas Joly <njoly@pasteur.fr>
List: current-users
Date: 10/11/2006 13:52:36
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Hi,
I'm getting a `kernel diagnostic assertion' panic on an -current
4.99.3 NetBSD/amd64 machine.
panic: kernel diagnostic assertion "pg->wire_count != 0 || uvmpdpol_pageisqueued_p(pg)" failed: file "/local/src/NetBSD/src/sys/uvm/uvm_page.c", line 1716
Stopped in pid 1655.1 (bozohttpd) at netbsd:cpu_Debugger+0x5: leave
db{0}> bt
cpu_Debugger() at netbsd:cpu_Debugger+0x5
panic() at netbsd:panic+0x1fc
__assert() at netbsd:__assert+0x21
uvm_pagedeactivate() at netbsd:uvm_pagedeactivate+0x5c
genfs_putpages() at netbsd:genfs_putpages+0x911
VOP_PUTPAGES() at netbsd:VOP_PUTPAGES+0x30
uvn_put() at netbsd:uvn_put+0x41
uvm_fault_internal() at netbsd:uvm_fault_internal+0x3b2
trap() at netbsd:trap+0x842
--- trap (number 1820140231) ---
0xe898a1d17f4436e8:
I'm able to reproduce it at will ... Just try, from another machine,
to get an JPEG image (37B) in an HTML page (2KB) using bozohttpd (from
pkgsrc/www) launched from inetd.
Unfortunately, gdb is unable to handle this situation :-(
root@lanfeust [/var/crash]# gdb /local/src/NetBSD/obj/amd64/sys/arch/amd64/compile/LANFEUST/netbsd.gdb
GNU gdb 5.3nb1
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 "x86_64--netbsd"...
(gdb) target kcore netbsd.2.core
panic: kernel %sassertion "%s" failed: file "%s", line %d
zsh: bus error (core dumped) gdb /local/src/NetBSD/obj/amd64/sys/arch/amd64/compile/LANFEUST/netbsd.gdb
njoly@lanfeust [~]> uname -a
NetBSD lanfeust.sis.pasteur.fr 4.99.3 NetBSD 4.99.3 (LANFEUST) #5: Tue Oct 10 18:25:48 CEST 2006 njoly@lanfeust.sis.pasteur.fr:/local/src/NetBSD/obj/amd64/sys/arch/amd64/compile/LANFEUST amd64
This is mostly a GENERIC.MP+DIAGNOSTIC+LOCKDEBUG kernel, with a few
additions (config attached).
Thanks in advance,
Regards.
--
Nicolas Joly
Biological Software and Databanks.
Institut Pasteur, Paris.
--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=LANFEUST
include "arch/amd64/conf/GENERIC"
# Multiprocessor
options MULTIPROCESSOR
# Diagnostic/debugging support options
options DIAGNOSTIC # expensive kernel consistency checks
options LOCKDEBUG
makeoptions COPTS="-O2 -fno-omit-frame-pointer"
options DDB # in-kernel debugger
options DDB_TEE_MSGBUF=1
makeoptions DEBUG="-g" # compile full symbol table
# Compatibility options
options COMPAT_LINUX # binary compatibility with Linux
options COMPAT_LINUX32 # req. COMPAT_LINUX and COMPAT_NETBSD32
# LM7[89] and compatible hardware monitors
lm0 at isa? port 0x290 # other common ports: 0x280, 0x310
# AMD 768 and 8111 power/ACPI controllers
amdpm* at pci? dev ? function ? # RNG and SMBus 1.0 interface
iic* at amdpm? # sensors below are on this bus
adt7463c* at iic? addr 0x2E # Tyan S2882-D/S2885
--k+w/mQv8wyuph6w0--