Date: Mon, 7 Jul 2003 22:50:39 -0700 From: "Ted Mittelstaedt" <tedm@toybox.placo.com> To: "Tim Robbins" <tjr@FreeBSD.ORG>, "Marc G. Fournier" <scrappy@hub.org>, <freebsd-stable@FreeBSD.ORG> Subject: RE: Okay, looks like I might have a *good* one here ... inode hang Message-ID: <000f01c34514$dc260ed0$1401a8c0@tedsbox> In-Reply-To: <20030707192527.A9706@dilbert.robbins.dropbear.id.au>
next in thread | previous in thread | raw e-mail | index | archive | help
Mark, Don't forget to attach this to the original PR's that you filed. Ted -----Original Message----- From: Tim Robbins [mailto:tjr@FreeBSD.ORG] Sent: Monday, July 07, 2003 2:25 AM To: Marc G. Fournier; freebsd-stable@FreeBSD.ORG; Ted Mittelstaedt Subject: Re: Okay, looks like I might have a *good* one here ... inode hang On Mon, Jul 07, 2003 at 01:05:30AM -0700, David Schultz wrote: > On Thu, Jul 03, 2003, Marc G. Fournier wrote: > > > follow that one, too. Maybe the trail will simply lead back to > > > unionfs... > > > > 'K, how about a loop? > > Heh...it's a deadlock between unionfs and nullfs. Sheesh. > If unionfs is at fault here, I think I already know where > the problem is, and it isn't easy to fix. But I'll have to > look more carefully when I get a chance. nullfs on 4.x can probably deadlock in certain situations while attempting to recycle vnodes; see null_vnops.c 1.63. This bug was made more obvious in 5.x by null_vnops.c 1.51, but I'm pretty sure that the problem was still there in earlier versions, but was just harder to trigger. There are a few questionable things in unionfs too. There might be a race in union_inactive() (should it grab the vnode interlock before dropping the vnode lock and call vgonel() instead of vgone()?), and the support for locking stacks of vnodes seems to be #if 0'd out in union_lock(). Tim
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000f01c34514$dc260ed0$1401a8c0>