Subject: kern/33408: dvd of death
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <rpaulo@netbsd.org>
List: netbsd-bugs
Date: 05/01/2006 20:00:02
>Number:         33408
>Category:       kern
>Synopsis:       dvd of death
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 01 20:00:01 +0000 2006
>Originator:     Rui Paulo
>Release:        NetBSD 3.99.18
>Organization:
Pigs, Limited.
>Environment:
	
	
Architecture: i386
Machine: i386
>Description:

	I recorded a dvd with readcd + cdrecord (ossdvd) and now
	when I try to play it NetBSD crashes.
	The fact that my dvd burner is not working fine shouldn't
	produce a crash.


#31 0xc02f2b75 in panic (
    fmt=0xc04f0a20 "kernel %sassertion \"%s\" failed: file \"%s\", line %d") at /home/rpaulo/netbsd/src/sys/kern/subr_prf.c:243
243                             Debugger();
(gdb) 
#32 0xc0423ae0 in __assert ()
(gdb) 
#33 0xc02d3de7 in physio_done (wk=0xc110ec24, dummy=0x0)
    at /home/rpaulo/netbsd/src/sys/kern/kern_physio.c:207
207                     wakeup(mbp);
(gdb) 
#34 0xc02f65ec in workqueue_runlist (wq=0xc12a7340, list=0xcbbc7f7c)
    at /home/rpaulo/netbsd/src/sys/kern/subr_workqueue.c:97
97                      (*wq->wq_func)(wk, wq->wq_arg);
(gdb) 
#35 0xc02f666b in workqueue_run (wq=0xc12a7340)
    at /home/rpaulo/netbsd/src/sys/kern/subr_workqueue.c:131
131                     workqueue_runlist(wq, &tmp);


(gdb) print wq
$3 = (struct workqueue *) 0xc12a7340
(gdb) print *wq
$4 = {wq_queue = {q_lock = {lock_data = 0, 
      lock_file = 0xc04c8a40 "/home/rpaulo/netbsd/src/sys/kern/kern_synch.c", 
      unlock_file = 0xc04cb340 "/home/rpaulo/netbsd/src/sys/kern/subr_workqueue.c", lock_line = 620, unlock_line = 81, list = {
        tqe_next = 0x0, tqe_prev = 0x0}, lock_holder = 4294967295}, 
    q_savedipl = 6, q_queue = {sqh_first = 0x0, 
      sqh_last = 0xc12a7360}, q_worker = 0xcbba5748}, 
  wq_func = 0xc02d3cf0 <physio_done>, wq_arg = 0x0, 
  wq_name = 0xc047e789 "physiod", wq_prio = 16, wq_ipl = 0}

(gdb) print tmp
$5 = {sqh_first = 0xc110ec24, sqh_last = 0xaabbccdd}
(gdb) down
#34 0xc02f65ec in workqueue_runlist (wq=0xc12a7340, list=0xcbbc7f7c)
    at /home/rpaulo/netbsd/src/sys/kern/subr_workqueue.c:97
97                      (*wq->wq_func)(wk, wq->wq_arg);
(gdb) down
#33 0xc02d3de7 in physio_done (wk=0xc110ec24, dummy=0x0)
    at /home/rpaulo/netbsd/src/sys/kern/kern_physio.c:207
207                     wakeup(mbp);
(gdb) print wk
$17 = (struct work *) 0xc110ec24
(gdb) print *wk
$18 = {wk_entry = {sqe_next = 0x0}}
(gdb) print mbp
$19 = (struct buf *) 0xc110ede0
(gdb) print *mbp
$20 = {b_u = {u_actq = {tqe_next = 0xdeadbeef, 
      tqe_prev = 0xc110ec24}, u_work = {wk_entry = {
        sqe_next = 0xdeadbeef}}}, b_interlock = {lock_data = 1, 
    lock_file = 0xc04c73a0 "/home/rpaulo/netbsd/src/sys/kern/kern_physio.c", 
    unlock_file = 0xc04c8a40 "/home/rpaulo/netbsd/src/sys/kern/kern_synch.c", lock_line = 160, unlock_line = 525, list = {tqe_next = 0x0, 
      tqe_prev = 0xc04f9d50}, lock_holder = 0}, b_flags = 8388624, 
  b_error = 0, b_prio = 1, b_bufsize = -559038737, 
  b_bcount = -559038737, b_resid = -559038737, b_dev = 4294967295, 
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)
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}



>How-To-Repeat:
	
>Fix:
	

>Unformatted:
 	B