Re: [Ext2-devel] [RFC] ext3/jbd race: releasing in-usejournal_heads

From: Stephen C. Tweedie
Date: Mon Mar 07 2005 - 09:29:46 EST


Hi,

On Fri, 2005-03-04 at 23:17, Badari Pulavarty wrote:

> I looked at few journalling bugs recently on RHEL4 testing here.
> I am wondering if your patch fixes this following BUG also ?
> I never got to bottom of some of these journal panics -
> since they are not easily reproducible

Right...

> + I don't understand
> journal code well enough :(

Fortunately this one seems to be a simple locking violation, nothing
subtle in the jbd layers.

> Assertion failure in journal_commit_transaction() at fs/jbd/commit.c:790: "jh->b_next_transaction == ((void *)0)"
> kernel BUG in journal_commit_transaction at fs/jbd/commit.c:790!

I'm assuming that's the line
J_ASSERT_JH(jh, jh->b_next_transaction == NULL);
in the t_forget loop. That's not one of the most common footprints I
saw due to this bug, but it's certainly a possible one. We saw one case
where a bh from the wrong transaction was linked onto the j_locked_list,
due to it being freed then reused while in use; and if that can happen,
pretty much anything can go wrong afterwards!

--Stephen

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/