From owner-freebsd-current Sun Aug 29 23: 1:38 1999 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (Postfix) with ESMTP id 006CF1520C for ; Sun, 29 Aug 1999 23:01:35 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id WAA09987; Sun, 29 Aug 1999 22:59:22 -0700 (PDT) (envelope-from dillon) Date: Sun, 29 Aug 1999 22:59:22 -0700 (PDT) From: Matthew Dillon Message-Id: <199908300559.WAA09987@apollo.backplane.com> To: Bernd Walter Cc: Mike Smith , Bernd Walter , Parag Patel , freebsd-current@FreeBSD.ORG, grog@lemis.com Subject: Re: 4.0-CURRENT SMP crash with vinum raid-5 and softupdates References: <199908292224.PAA15435@dingo.cdrom.com> <199908292348.QAA07774@apollo.backplane.com> <19990830075311.A30271@cicely8.cicely.de> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :(kgdb) target remote /dev/cuaa2 :Remote debugging using /dev/cuaa2 :0x0 in ?? () :(kgdb) bt :#0 0x0 in ?? () :#1 0xc017228f in biodone (bp=0xc09ebd80) at ../../kern/vfs_bio.c:2580 :#2 0xc0123db6 in dadone (periph=0xc0882c80, done_ccb=0xc09bd200) at ../../cam/scsi/scsi_da.c:1294 :#3 0xc011fa7b in camisr (queue=0xc02726b4) at ../../cam/cam_xpt.c:6141 :#4 0xc011f88d in swi_cambio () at ../../cam/cam_xpt.c:6048 :#5 0xc020db30 in splz_swi () :(kgdb) frame 1 :#1 0xc017228f in biodone (bp=0xc09ebd80) at ../../kern/vfs_bio.c:2580 :2580 ../../kern/vfs_bio.c: No such file or directory. :(kgdb) print bp :$1 = (struct buf *) 0xc09ebd80 :(kgdb) print *bp :$2 = { : b_hash = { : le_next = 0x0, : le_prev = 0x0 : }, : b_vnbufs = { :... :(kgdb) :-- :B.Walter COSMO-Project http://www.cosmo-project.de This is definitely a pbuf. Did you apply the patches Greg emailed? They will panic the machine earlier while it is still in the correct stack frame, allowing Greg to track down where the I/O initiation came from. -Matt Matthew Dillon (patch and comments from Greg): Index: kern/vfs_bio.c =================================================================== RCS file: /home/ncvs/src/sys/kern/vfs_bio.c,v retrieving revision 1.227 diff -w -u -r1.227 vfs_bio.c --- vfs_bio.c 1999/08/28 00:46:23 1.227 +++ vfs_bio.c 1999/08/30 01:31:00 @@ -2576,6 +2576,8 @@ /* call optional completion function if requested */ if (bp->b_flags & B_CALL) { + if (bp->b_iodone == NULL) + Debugger ("biodone"); bp->b_flags &= ~B_CALL; (*bp->b_iodone) (bp); splx(s); Index: dev/vinum/vinumrequest.c =================================================================== RCS file: /home/ncvs/src/sys/dev/vinum/vinumrequest.c,v retrieving revision 1.35 diff -w -u -r1.35 vinumrequest.c --- vinumrequest.c 1999/08/28 00:42:42 1.35 +++ vinumrequest.c 1999/08/30 01:26:58 @@ -396,6 +390,9 @@ if (debug & DEBUG_LASTREQS) logrq(loginfo_rqe, (union rqinfou) rqe, rq->bp); #endif + if ((rqe->b.b_flags & B_CALL) + && (rqe->b.b_iodone == NULL) ) + Debugger ("launch_requests"); /* fire off the request */ BUF_STRATEGY(&rqe->b, 0); } You could also enable some of Vinum's internal logging: # vinum debug 324 This will log all requests in an internal buffer. With the .gdbinit files in /sys/modules/vinum, you can display them with the gdb command 'rrqi'. Alternatively, if I can connect to the debug console, I'll look for myself. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message