DragonFly BSD
DragonFly bugs List (threaded) for 2006-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: vinum panic on -devel


From: "Simon 'corecode' Schubert" <corecode@xxxxxxxxxxxx>
Date: Thu, 06 Jul 2006 15:26:25 +0200

joerg@xxxxxxxxxxxxxxxxx wrote:
On Wed, Jul 05, 2006 at 03:48:55PM -0700, Matthew Dillon wrote:
It would be great if some vinum testing could be done.
If you have some spare drives, try the following setup:
[snip]

using this config, the next one:
Unread portion of the kernel message buffer:
<6>vinum: test3.p0.s1 is initializing by force
<6>vinum: test3.p0 is initializing
<6>vinum: test3.p0.s0 is initializing by force
panic: assertion: bio->bio_buf->b_cmd != BUF_CMD_DONE in dev_dstrategy

#3 0xc0164993 in dev_dstrategy (dev=0xcbecdec0, bio=0xd229ac88)
at /usr/build/src/sys/kern/kern_device.c:214
#4 0xd5bffd4f in sdio (bio=0xc24f9430) at /usr/build/src/sys/dev/raid/vinum/vinumrequest.c:991
#5 0xd5c00e99 in initsd (sdno=6, verify=0) at /usr/build/src/sys/dev/raid/vinum/vinumrevive.c:560
#6 0xd5c01fa3 in start_object (data=0xd5bc4400)
at /usr/build/src/sys/dev/raid/vinum/vinumstate.c:885
#7 0xd5c02410 in setstate (msg=0xd5bc4400) at /usr/build/src/sys/dev/raid/vinum/vinumstate.c:1057
#8 0xd5bfcbb8 in vinumioctl (dev=0xcbed03b8, cmd=3238020684, data=0xd5bc4400 "\006", flag=3,
td=0xd5627900) at /usr/build/src/sys/dev/raid/vinum/vinumioctl.c:215


i think the fix is

diff -r 8d0206a990f4 sys/dev/raid/vinum/vinumrequest.c
--- a/sys/dev/raid/vinum/vinumrequest.c Thu Jul 06 13:16:25 2006 +0200
+++ b/sys/dev/raid/vinum/vinumrequest.c Thu Jul 06 15:22:58 2006 +0200
@@ -947,6 +947,7 @@ sdio(struct bio *bio)
    sddev = DRIVE[sd->driveno].dev;                /* device */
    bzero(sbp, sizeof(struct sdbuf));                      /* start with nothing */
    sbp->b.b_flags = bp->b_flags | B_PAGING;
+    sbp->b.b_cmd = bp->b_cmd;
    sbp->b.b_bcount = bp->b_bcount;                        /* number of bytes to transfer */
    sbp->b.b_resid = bp->b_resid;                          /* and amount waiting */
    sbp->b.b_data = bp->b_data;                                    /* data buffer */

will test this in a few minutes.

cheers
 simon

--
Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]