Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Feb 2004 10:28:32 -0500 (EST)
From:      Daniel Papasian <dpapasia@andrew.cmu.edu>
To:        Andreas Kohn <andreas.kohn@gmx.net>
Cc:        current@FreeBSD.org
Subject:    Re: [PANIC] page fault -> bremfree: removing a buffer not on a queue
Message-ID:  <Pine.BSF.4.58-036.0402181020280.4492@damnleftist.res.cmu.edu>
In-Reply-To: <1077099032.1231.12.camel@klamath.syndrom23.de>
References:  <1077099032.1231.12.camel@klamath.syndrom23.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 18 Feb 2004, Andreas Kohn wrote:
> Hello,
>
> yesterday my computer crashed with this panic:
>
<snip>
>
> 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.58-036.0402181020280.4492>