From owner-freebsd-current@FreeBSD.ORG Wed Feb 18 07:28:21 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4653C16A4CE for ; Wed, 18 Feb 2004 07:28:21 -0800 (PST) Received: from smtp1.andrew.cmu.edu (SMTP1.andrew.cmu.edu [128.2.10.81]) by mx1.FreeBSD.org (Postfix) with ESMTP id 03C9F43D1D for ; Wed, 18 Feb 2004 07:28:21 -0800 (PST) (envelope-from dpapasia@andrew.cmu.edu) Received: from DAMNLEFTIST.RES.cmu.edu (DAMNLEFTIST.RES.cmu.edu [128.2.164.41]) (user=dpapasia mech=GSSAPI (0 bits))i1IFSLZJ022248; Wed, 18 Feb 2004 10:28:21 -0500 Date: Wed, 18 Feb 2004 10:28:32 -0500 (EST) From: Daniel Papasian X-X-Sender: dpapasia@damnleftist.res.cmu.edu To: Andreas Kohn In-Reply-To: <1077099032.1231.12.camel@klamath.syndrom23.de> Message-ID: References: <1077099032.1231.12.camel@klamath.syndrom23.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: current@FreeBSD.org Subject: Re: [PANIC] page fault -> bremfree: removing a buffer not on a queue X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 15:28:21 -0000 On Wed, 18 Feb 2004, Andreas Kohn wrote: > Hello, > > yesterday my computer crashed with this panic: > > > syncing disks, buffers remaining... panic: bremfree: removing a buffer > not on a queue Okay, I'm not the only one who has had this panic. I've been looking at it, but without essentially zero prior knowledge of the filesystem and no computer around with a filesystem I can afford to have corrupted, personally I'm afraid to take any sort of action. > Before the panic happened, I was compiling/linking some software, and > watching TV (bttv/xawtv). The linking process gave some strange error My question is, did you do this on a "dirty" filesystem using softupdates- that is, one that crashed and came up and fsck was in the process of reclaiming unused resources? I believe the easiest solution is to test in bremfree whether there are less than or equal to 1 locks (BUF_REFCNT) on the buffer and if there aren't, simply return. But by no means do I believe this solution to be correct; bremfree should not be called if this is the case, I suspect, but it is being called in such circumstances in more than one place (my crashdump, posted earlier to current@, called bremfree at a different place) Unless, of course, the if(BUF_REFCNT(bp) <=1) assertion inside of bremfreel is not correct. -Dan