Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Aug 2002 15:58:17 -0500
From:      Doug Swarin <doug@staff.texas.net>
To:        Peter Edwards <pmedwards@eircom.net>
Cc:        gallatin@cs.duke.edu, hackers@FreeBSD.ORG
Subject:   Re: Vinum crash
Message-ID:  <20020823155817.A82817@staff.texas.net>
In-Reply-To: <20020823202017.0E2C043E3B@mx1.FreeBSD.org>; from pmedwards@eircom.net on Fri, Aug 23, 2002 at 09:20:02PM %2B0100
References:  <20020823202017.0E2C043E3B@mx1.FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 23, 2002 at 09:20:02PM +0100, Peter Edwards wrote:
> "Peter Edwards" <pmedwards@eircom.net> wrote:
> Urgh. Forget it, I was seeing references to rq that weren't there.
> 
> > Hi,
> > 
> > Ok, I'm up to my neck in code I've never seen and making wild 
> > guesses, but:
> > 
> > In vinumrequest.c:launch_requests(), isn't it possible that the 
> > final BUF_STRATEGY() from line 431 completes before we get back to the top of the outer "for" loop and that complete_rqe gets called for the
> > last buffer (we don't have splbio()), bringing the refcount of the
> > entire request down to zero, then freeing the request. You then get to the top of the loop, and rq will have been freed, but you looking at its contents. Ok, maybe not likely but...
> > 
> > I suppose you could just hold one more reference to the request while doing launch_requests() and check after all theB UF_STRATEGYs are done when you decrement the active count and find it's zero, then do the "request-finished" processing as done by complete_rqe
> > 
> > Just a thought...
> > -- 
> > Peter Edwards.

I've already got a patch for this; it's in PR kern/41740, along with
another that allows you to safely hot-revive a striped plex.

Doug Swarin
doug@texas.net

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




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