Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Sep 2013 09:19:45 +0200
From:      Patrick Lamaiziere <patfbsd@davenulle.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Possible kqueue related issue on STABLE/RC.
Message-ID:  <20130926091945.44f70996@mr129166>
In-Reply-To: <20130925080633.GY41229@kib.kiev.ua>
References:  <20130920151705.33aae120@mr129166> <20130923153708.45c3be3d@mr129166> <20130923203141.GV41229@kib.kiev.ua> <20130924094427.0f4b902a@mr129166> <20130924082909.GH41229@kib.kiev.ua> <20130924114738.60c700c9@mr129166> <20130924121434.GI41229@kib.kiev.ua> <20130924174517.GB14220@funkthat.com> <20130924212127.GQ41229@kib.kiev.ua> <20130925095805.2072f0cc@mr129166> <20130925080633.GY41229@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Le Wed, 25 Sep 2013 11:06:33 +0300,
Konstantin Belousov <kostikbel@gmail.com> a écrit :

Hello,

> > > On Tue, Sep 24, 2013 at 10:45:17AM -0700, John-Mark Gurney wrote:
> > > > I'd like to understand why you think protecting these functions
> > > > w/ the _DETACHED check is correct...  In kern_event.c, all
> > > > calls to f_detach are followed by knote_drop which will ensure
> > > > that the knote is removed and free, so no more f_event calls
> > > > will be called on that knote..
> > > 
> > > My current belief is that what happens is a glitch in the
> > > kqueue_register(). After a new knote is created and attached, the
> > > kq lock is dropped and then f_event() is called. If the vnode is
> > > reclaimed or possible freed meantime, f_event() seems to
> > > dereference freed memory, since kn_hook points to freed vnode.
> > > 
> > > The issue as I see it is that vnode lifecycle is detached from the
> > > knote lifecycle.  Might be, only the second patch, which acquires
> > > a hold reference on the vnode for each knote, is really needed.
> > > But before going into any conclusions, I want to see the testing
> > > results.
> > 
> > Testing looks good with your latest patch. I was able to run a
> > complete poudriere bulk (870 packages). I'm running another bulk to
> > see..

I've made another bulk without problem (with complete patch)

> > If you have other patches to test just ask, I have not updated my
> > packages because there was a change to make gvfsd to ignore some
> > poudriere activity. So I guess it will be harder to see this
> > problem.

> Could you, please, test with the only patch
> http://people.freebsd.org/~kib/misc/vnode_filter.1.patch
> applied ?  I wonder would it be enough.

Looks good with this single patch too, one poudriere bulk is
completed and I'm doing another just in case (but I think it would
have already paniced, that's quite reproductible).

Thanks, regards.



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