From owner-freebsd-bugs@FreeBSD.ORG Thu Jun 5 22:30:15 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 23DEA37B401 for ; Thu, 5 Jun 2003 22:30:15 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id ABC2743FCB for ; Thu, 5 Jun 2003 22:30:14 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.9/8.12.9) with ESMTP id h565UEUp038805 for ; Thu, 5 Jun 2003 22:30:14 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.9/8.12.9/Submit) id h565UEFs038804; Thu, 5 Jun 2003 22:30:14 -0700 (PDT) Date: Thu, 5 Jun 2003 22:30:14 -0700 (PDT) Message-Id: <200306060530.h565UEFs038804@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Greg 'groggy' Lehey" Subject: Re: kern/52916: vinum causes panic after start/stop/... cycle, easy to reproduce X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Greg 'groggy' Lehey List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Jun 2003 05:30:15 -0000 The following reply was made to PR kern/52916; it has been noted by GNATS. From: Greg 'groggy' Lehey To: Pawel Malachowski Cc: FreeBSD-gnats-submit@FreeBSD.org Subject: Re: kern/52916: vinum causes panic after start/stop/... cycle, easy to reproduce Date: Fri, 6 Jun 2003 14:52:05 +0930 --lrZ03NoBR/3+SXJZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wednesday, 4 June 2003 at 21:00:24 +0200, Pawel Malachowski wrote: > On 4 Jun 2003 at 16:57, Greg 'groggy' Lehey wrote: > >>>> Description: >>> Both 4.8-RELEASE and fresh 4.8-STABLE (on two different machines) catch >>> kernel panic when I try something like: >>> vinum start;vinum stop;vinum start;vinum stop;vinum start;vinum stop >>> >>> It is very easy to reproduce. >> >> I was not able to reproduce it. > > I've published this script on Polish FreeBSD users group, people confirm > their machines are crashing too (about 20-60 start/stop cycles): > > >>> 4.8-STABLE was compiled with debug symbols, unfortunately there is >>> no crashdump. >> >> What's the problem? Do you have crash dumps enabled? > > Yes. > >> grep dump /etc/rc.conf > dumpdev=3D"/dev/ad0s2b" >> swapinfo > Device 1K-blocks Used Avail Capacity Type > /dev/ad0s2b 1048448 0 1048448 0% Interleaved >> sysctl kern.dumpdev > kern.dumpdev: { major =3D 116, minor =3D 0x30001 } > > Swap is big enough. Hmm. =20 >>> fault virtual address =3D 0xb7 >>> fault code =3D supervisor read, page not present >>> instruction pointer =3D 0x8:0xc01bedc8 >> >> This one. > > `x $eip' shows dscheck+0x104 b8968b OK, this might give us a clue. >>> So I compiled vinum statically into kernel, >>> >>> # vinum start;vinum stop;vinum start;vinum stop; >>> ** no drives found: No such file or directory >>> Can't unload vinum: No such file or directory >>> ** no drives found: No such file or directory >>> Can't unload vinum: No such file or directory >>> >>> and it crashed again with message like this: >>> >>> vinum: no drives found >>> vinum: no drives found No, that's not a crash message. That's normal. I'm guessing this has something to do with md devices. Do you use any? I don't, and every 'vinum start' created one. I've committed a fix to vinum(8) (revision 1.31.2.6 of src/sbin/vinum/commands.c). Please try it and tell me if it fixes the problem. Here it is again to save you cvsupping: diff -w -u -r1.31.2.5 commands.c --- commands.c 4 May 2002 05:04:14 -0000 1.31.2.5 +++ commands.c 6 Jun 2003 05:08:43 -0000 @@ -275,6 +275,10 @@ char reply[32]; int error; =20 + if (! isatty (STDIN_FILENO)) { + fprintf (stderr, "Please enter this command from a tty device\n"); + return; + } printf(" WARNING! This command will completely wipe out your vinum co= nfiguration.\n" " All data will be lost. If you really want to do this, enter the = text\n\n" " NO FUTURE\n" @@ -544,6 +548,7 @@ =20 if ((((stat->device_type & DEVSTAT_TYPE_MASK) =3D=3D DEVSTAT_TY= PE_DIRECT) /* disk device */ || ((stat->device_type & DEVSTAT_TYPE_MASK) =3D=3D DEVSTAT= _TYPE_STORARRAY)) /* storage array */ + &&((stat->device_type & DEVSTAT_TYPE_IF_MASK) !=3D DEVSTAT_TYPE= _IF_OTHER) /* and not md */ &&((stat->device_type & DEVSTAT_TYPE_PASS) =3D=3D 0) /* and not= passthrough */ &&((stat->device_name[0] !=3D '\0'))) { /* and it has= a name */ sprintf(enamelist, "%s%s%d", _PATH_DEV, stat->device_name, = stat->unit_number); Greg -- See complete headers for address and phone numbers --lrZ03NoBR/3+SXJZ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (FreeBSD) iD8DBQE+4CT9IubykFB6QiMRAtPeAKCYfaIlE20BClGuEIU3Jg5b/wszKgCeMlB1 HMmTlyd/mnfnY4Jlqnt82rc= =pmOV -----END PGP SIGNATURE----- --lrZ03NoBR/3+SXJZ--