Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Jun 2004 12:34:47 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        geom@freebsd.org
Subject:   Re: spoiled but acr = 1.
Message-ID:  <20040604103447.GJ12007@darkness.comp.waw.pl>
In-Reply-To: <20040604082659.GI12007@darkness.comp.waw.pl>
References:  <20040604082659.GI12007@darkness.comp.waw.pl>

next in thread | previous in thread | raw e-mail | index | archive | help

--DfnuYBTqzt7sVGu3
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Jun 04, 2004 at 10:26:59AM +0200, Pawel Jakub Dawidek wrote:
+> Hi.
+>=20
+> While working on geom_mirror and using geom_nop I've found that this
+> is possible to panic geom in this way:
+>=20
+> We have providers: md0 and md0.nop (attached to md0, but not opened).
+>=20
+> We load new class (geom_mirror).
+>=20
+> GEOM gives provider md0 for taste.
+>=20
+> Class is tasting md0 and opening it with r1w1e1.
+>=20
+> Provider was opened for writing so all md0's consumers are marked as
+> beeing spoiled (md0.nop -> md0 consumer too) and g_spoil_event is send.
+>=20
+> Before g_spoil_event can be proceeded we're still in g_new_provider
+> event and the next provider to taste is md0.nop.
+>=20
+> Class is trying to open md0.nop for reading.
+>=20
+> Provider md0.nop is trying to open through its consumer (which was
+> marked as beeing spoiled) provider md0 and... panic.
+>=20
+>=20
+> I'm not sure how to solve this yet. Maybe before we give provider
+> for taste we should check if any of its consumer is marked as beeing
+> spoiled. But when we should return with taste of this provider?
+>=20
+> Hmm, or maybe something like this:
+>=20
+> 	http://people.freebsd.org/~pjd/patches/geom_subr.c.14.patch
+>=20
+> but I'm afraid we can cancel too much.

I updated the patch. In my situation it was caused by taste method call,
but from g_new_provider_event() and I was checking wrong consumers.
This patch works for me, but I'm not still sure if I'm not canceling
too much.

--=20
Pawel Jakub Dawidek                       http://www.FreeBSD.org
pjd@FreeBSD.org                           http://garage.freebsd.pl
FreeBSD committer                         Am I Evil? Yes, I Am!

--DfnuYBTqzt7sVGu3
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iD8DBQFAwFBHForvXbEpPzQRAi4TAJ4po7r33vHR0tWwn0/1QXOt1A1pHgCgzba/
2jz47qLdQU6GrtzKUtvn2Iw=
=9nhI
-----END PGP SIGNATURE-----

--DfnuYBTqzt7sVGu3--


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