From owner-freebsd-stable@FreeBSD.ORG Mon Jul 7 16:33:05 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3600937B401; Mon, 7 Jul 2003 16:33:04 -0700 (PDT) Received: from hub.org (hub.org [64.117.225.220]) by mx1.FreeBSD.org (Postfix) with ESMTP id 87E9E43FAF; Mon, 7 Jul 2003 16:33:03 -0700 (PDT) (envelope-from scrappy@hub.org) Received: from hub.org (unknown [64.117.225.220]) by hub.org (Postfix) with ESMTP id 6B4505B9A12; Mon, 7 Jul 2003 20:32:58 -0300 (ADT) Date: Mon, 7 Jul 2003 20:32:58 -0300 (ADT) From: "Marc G. Fournier" To: Tim Robbins In-Reply-To: <20030707192527.A9706@dilbert.robbins.dropbear.id.au> Message-ID: <20030707203130.P9021@hub.org> References: <20030701155450.J67063@hub.org> <20030702073306.GA3324@HAL9000.homeunix.com> <20030703033117.GA7647@HAL9000.homeunix.com> <20030707080530.GA23029@HAL9000.homeunix.com> <20030707192527.A9706@dilbert.robbins.dropbear.id.au> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-stable@freebsd.org cc: Ted Mittelstaedt Subject: Re: Okay, looks like I might have a *good* one here ... inode hang X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jul 2003 23:33:05 -0000 'k, since this one sounds like it may be a painful one to fix, I'm doign the same thing using an nfs mount for now, which, unless I'm missing something, does the same thing with a but more net traffic ... ? the reason I am/was using nullfs was to get at the "top files" of the union mount for backup purposes ... On Mon, 7 Jul 2003, Tim Robbins wrote: > 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 >