Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Dec 2006 02:41:05 +0100
From:      Max Laier <max@love2party.net>
To:        Pawel Jakub Dawidek <pjd@freebsd.org>
Cc:        Poul-Henning Kamp <phk@FreeBSD.org>, freebsd-geom@freebsd.org
Subject:   Re: gmirror comes up DEGRADED
Message-ID:  <200612190241.13265.max@love2party.net>
In-Reply-To: <20061216170910.GC10541@garage.freebsd.pl>
References:  <200612161537.21348.max@love2party.net> <20061216170910.GC10541@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart1325855.hogl3VlRi7
Content-Type: text/plain;
  charset="iso-8859-6"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Saturday 16 December 2006 18:09, Pawel Jakub Dawidek wrote:
> On Sat, Dec 16, 2006 at 03:37:15PM +0100, Max Laier wrote:
> > Hi,
> >
> > I'm new to really playing with gmirror and friends, so please forgive
> > me if this is a FAQ - my searches didn't turn up anything.  Please CC
> > me, for I'm not on the list.
> >
> > Following setup: 6.2-pre as of Wednesday
> >
> > ad0, ad2	250G ata on
> > 		atapci0@pci0:31:1:	class=3D0x010180 card=3D0x80281043 chip=3D0x244b80=
86
> > 					rev=3D0x05 hdr=3D0x00
> > 		    vendor   =3D 'Intel Corporation'
> > 		    device   =3D '82801BA (ICH2) UltraATA/100 IDE Controller'
> > 		    class    =3D mass storage
> > 		    subclass =3D ATA
> >
> > mirror/gm0	over ad0, ad2
> >
> > mirror/gm0s1	spanning all of the available space on gm0
> > mirror/gm0s1a	spanning all of the available space on gm0s1
> >
> > mirror/gm0s1a.bde	gbde encryption on gm0s1a.bde
> >
> > Now if I wait for the mirror to get in sync and do a reboot, it comes
> > up DEGRADED and resyncs ad0 (again) :-\  Does that mean I have to
> > stop everything manually before rebooting?  Is there a fundamental
> > error in the setup that I can remedy?  How do you do this right?  It
> > certainly is not a good idea to do it the other way round (i.e.
> > mirror two gbde provider), right?
> >
> > Any help greatly appreciated.
>
> If I read the code properly, the problem you are seeing is because gbde
> doesn't close its consumers on shutdown. It opens consumer r1w1e1 on
> attach, but it only close it on manual detach. This is wrong. It should
> open consumer on first provider open or should close it on shutdown. I
> decided not to touch gbde, so you need to ask phk@ or someone else to
> fix it.

Would it make sense to have a "graceful orphanization" for this kind of=20
things?  i.e. an operation with a semantic like "somebody asked me to go=20
away, so next time you get the chance - could you do so as well (for I=20
depend on you being okay with this)?"  It seems overly complicated to ask=20
classes that don't require a state save to implement a dedicated hook to=20
go away on system shutdown.  For a "graceful orphanization", however, all=20
you need to do is keep a flag in the softc, pass down the request and=20
wait for the open count to drop to zero.

Does that sound like it might work?  I'd try to dig into it if it makes=20
sense.

> I also found a bug in g_bde_access() function:
>
> 	if ((cp->acr + dr) =3D=3D 0 && (cp->acw + dw) =3D=3D 0 && (cp->ace + de)=
 =3D=3D 1)
> {
>
> I think it should be:
>
> 	if ((cp->acr + dr) =3D=3D 1 && (cp->acw + dw) =3D=3D 0 && (cp->ace + de)=
 =3D=3D 1)
> {

Since *dr is decremented in the body, this seems to be the case indeed.

=2D-=20
/"\  Best regards,                      | mlaier@freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News

--nextPart1325855.hogl3VlRi7
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)

iD8DBQBFh0M5XyyEoT62BG0RAjieAJ9QYCuLNvIEcZZI/vy6qnUpQ4AmJgCfVeFr
KlIEe+TVG95PMc4gk1OSzRI=
=NXU+
-----END PGP SIGNATURE-----

--nextPart1325855.hogl3VlRi7--



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