Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Sep 1999 10:02:18 +0930
From:      Greg Lehey <grog@lemis.com>
To:        "Eric J. Schwertfeger" <ejs@bfd.com>
Cc:        questions@FreeBSD.ORG
Subject:   Re: vinum and 3.2R -> 3.3R upgrade
Message-ID:  <19990930100218.A517@freebie.lemis.com>
In-Reply-To: <Pine.BSF.4.10.9909290759001.72913-100000@harlie.bfd.com>; from Eric J. Schwertfeger on Wed, Sep 29, 1999 at 08:08:17AM -0700
References:  <Pine.BSF.4.10.9909290759001.72913-100000@harlie.bfd.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, 29 September 1999 at  8:08:17 -0700, Eric J. Schwertfeger wrote:
>
> Upgraded a 3.2R storage server to 3.3R, and the machine didn't see the
> existing vinum slices, which was to be expected since I hadn't changed the
> slices from "unused" to "vinum".  Well, I made that change, and now the
> same machine comes up with several errors (claiming at least one of the
> slices is unavailable, so the concatination is corrupted), then a kernel
> panic.

Where's the dump?

> For the time being, I'm running 3.3R user space, and 3.2R kernel, which
> makes me uncomfortable.

You're saying it works with 3.2 and not with 3.3?  In that case you
might have been bitten by a bug in the start code.

> I'm preparing to back it up now, to reinitialize vinum and restore, but
> I was curious as to if anyone else had seen this and had a quicker
> solution, as I really don't want to be down for the length of time it will
> take to back up and restore 14GB of data.

If it's the bug I'm thinking of, there are two ways to solve your
problem.  A workaround is to ensure that you have all the slice
devices (/dev/da0s1a, etc) present.  The correct solution is in the
following patch.  This is also in 3.3-STABLE.

--- vinumio.c   1999/08/29 16:24:18     1.7.2.9
+++ vinumio.c   1999/09/29 03:44:28     1.7.2.10
@@ -33,7 +33,7 @@
  * otherwise) arising in any way out of the use of this software, even if
  * advised of the possibility of such damage.
  *
- * $FreeBSD: /home/ncvs/src/sys/dev/vinum/vinumio.c,v 1.7.2.9 1999/08/29 16:24:18 peter Exp $
+ * $FreeBSD: /home/ncvs/src/sys/dev/vinum/vinumio.c,v 1.7.2.10 1999/09/29 03:44:28 grog Exp $
  */
 
 #include <dev/vinum/vinumhdr.h>
@@ -58,7 +58,7 @@
     NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, drive->devicename, p);
     error = vn_open(&nd, FREAD | FWRITE, 0);               /* open the device */
     if (error != 0) {                                      /* can't open? */
-       set_drive_state(drive->driveno, drive_down, setstate_force);
+       drive->state = drive_down;                          /* just force it down */
        drive->lasterror = error;
        if (verbose)
            log(LOG_WARNING,
@@ -204,7 +204,8 @@
        LOCKDRIVE(drive);                                   /* keep the daemon out */
     if (drive->vp)
        close_locked_drive(drive);                          /* and close it */
-    drive->state = drive_down;                             /* don't tell the system about this one at all */
+    if (drive->state > drive_down)                         /* if it's up, */
+        drive->state = drive_down;                         /* go down directly, do not pass daemon */
     unlockdrive(drive);
 }

> Yeah, I know, should have done it right in the first place :-)

If it's this bug, it wasn't your fault.

Greg
--
When replying to this message, please copy the original recipients.
For more information, see http://www.lemis.com/questions.html
See complete headers for address, home page and phone numbers
finger grog@lemis.com for PGP public key


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990930100218.A517>