Subject: kern/32860: panic after heavy IO
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <dogcow@babymeat.com>
List: netbsd-bugs
Date: 02/17/2006 08:45:00
>Number:         32860
>Category:       kern
>Synopsis:       panic after heavy IO
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 17 08:45:00 +0000 2006
>Originator:     Tom Spindler
>Release:        NetBSD 3.99.15
>Organization:
	
>Environment:
	
	
System: NetBSD mercury.babymeat.com 3.99.15 NetBSD 3.99.15 (MERCURY) #5: Wed Feb 15 21:46:41 PST 2006 dogcow@mercury:/aux/obj/obj/usr/src/sys/arch/i386/compile/MERCURY i386
Architecture: i386
Machine: i386
>Description:
Under heavy I/O load (hitting multiple disks), the machine paniced.
	
>How-To-Repeat:
run cvs, and mplayer, and firefox.
	
Feb 17 00:13:16 mercury savecore: reboot after panic: panic: kernel diagnostic assertion "(bp->b_flags & B_ERROR) == 0" failed: file "/usr/src/sys/kern/kern_physio.c", line 201

(gdb) bt
#0  0xc0485000 in ?? ()
#1  0xc02668e2 in cpu_reboot (howto=256, bootstr=0x0)
    at /usr/src/sys/arch/i386/i386/machdep.c:755
#2  0xc020bed7 in panic (
    fmt=0xc0390ba0 "kernel %sassertion \"%s\" failed: file \"%s\", line %d")
    at /usr/src/sys/kern/subr_prf.c:246
#3  0xc0302bee in __assert ()
#4  0xc01ebab4 in physio_done (wk=0xc167e6d8, dummy=0x0)
    at /usr/src/sys/kern/kern_physio.c:207
#5  0xc020fe43 in workqueue_runlist (wq=0xc131b9c0, list=0xcb5a7f7c)
    at /usr/src/sys/kern/subr_workqueue.c:97
#6  0xc020fed5 in workqueue_run (wq=0xc131b9c0)
    at /usr/src/sys/kern/subr_workqueue.c:131
#3  0xc0302bee in __assert ()
(gdb) 
#4  0xc01ebab4 in physio_done (wk=0xc167e6d8, dummy=0x0)
    at /usr/src/sys/kern/kern_physio.c:207
207                     wakeup(mbp);
#5  0xc020fe43 in workqueue_runlist (wq=0xc131b9c0, list=0xcb5a7f7c)
    at /usr/src/sys/kern/subr_workqueue.c:97
97                      (*wq->wq_func)(wk, wq->wq_arg);
#6  0xc020fed5 in workqueue_run (wq=0xc131b9c0)
    at /usr/src/sys/kern/subr_workqueue.c:131
131                     workqueue_runlist(wq, &tmp);

(gdb) up
#4  0xc01ebab4 in physio_done (wk=0xc167e6d8, dummy=0x0)
    at /usr/src/sys/kern/kern_physio.c:207
207                     wakeup(mbp);
(gdb) print *mbp
$3 = {b_u = {u_actq = {tqe_next = 0xdeadbeef, tqe_prev = 0xc167e6d8}, 
    u_work = {wk_entry = {sqe_next = 0xdeadbeef}}}, b_interlock = {
    lock_data = -1050152968}, b_flags = 8388624, b_error = 0, b_prio = 1, 
  b_bufsize = -559038737, b_bcount = -559038737, b_resid = -559038737, 
  b_dev = 4294967295can not access 0xdeadbeef, invalid translation (invalid PDE)
can not access 0xdeadbeef, invalid translation (invalid PDE)
can not access 0xdeadbeef, invalid translation (invalid PDE)
can not access 0xdeadbeef, invalid translation (invalid PDE)
can not access 0xdeadbeef, invalid translation (invalid PDE)
can not access 0xdeadbeef, invalid translation (invalid PDE)
, b_un = {
    b_addr = 0xdeadbeef <Address 0xdeadbeef out of bounds>}, 
  b_blkno = -2401053088876216593, b_rawblkno = -2401053088876216593, 
  b_iodone = 0xdeadbeef, b_proc = 0xdeadbeef, b_vp = 0xdeadbeef, b_dep = {
    lh_first = 0x0}, b_saveaddr = 0xdeadbeef, b_fspriv = {
    bf_private = 0xdeadbeef, bf_dcookie = -2401053088876216593}, b_hash = {
    le_next = 0xdeadbeef, le_prev = 0xdeadbeef}, b_vnbufs = {
    le_next = 0xdeadbeef, le_prev = 0xdeadbeef}, b_freelist = {
    tqe_next = 0xdeadbeef, tqe_prev = 0xdeadbeef}, b_lblkno = -1, 
  b_freelistindex = 1}

>Fix:
	

>Unformatted: