Re: 2.6.18 ext3 panic.

Eric Sandeen
2006-10-09T19:47:12Z

Andrew Morton wrote:
> On Tue, 03 Oct 2006 00:43:01 -0500
> Eric Sandeen <sandeen@sandeen.net> wrote:
>
>> Dave Jones wrote:
>>
>>> So I managed to reproduce it with an 'fsx foo' and a
>>> 'fsstress -d . -r -n 100000 -p 20 -r'. This time I grabbed it from
>>> a vanilla 2.6.18 with none of the Fedora patches..
>>>
>>> I'll give 2.6.18-git a try next.
>>>
>>> Dave
>>>
>>> ----------- [cut here ] --------- [please bite here ] ---------
>>> Kernel BUG at fs/buffer.c:2791
>> I had thought/hoped that this was fixed by Jan's patch at
>> http://lkml.org/lkml/2006/9/7/236 from the thread started at
>> http://lkml.org/lkml/2006/9/1/149, but it seems maybe not. Dave hit this bug
>> first by going through that new codepath....
>
> Yes, Jan's patch is supposed to fix that !buffer_mapped() assertion. iirc,
> Badari was hitting that BUG and was able to confirm that Jan's patch
> (3998b9301d3d55be8373add22b6bc5e11c1d9b71 in post-2.6.18 mainline) fixed
> it.

Looking at some BH traces*, it appears that what Dave hit is a truncate
racing with a sync...

truncate ...
ext3_invalidate_page
journal_invalidatepage
journal_unmap buffer

going off at the same time as

sync ...
journal_dirty_data
sync_dirty_buffer
submit_bh <-- finds unmapped buffer, boom.

I'm not sure what should be coordinating this, and I'm not sure why
we've not yet seen it on a stock kernel, but only FC6... I haven't found
anything in FC6 that looks like it may affect this.

-Eric

*http://people.redhat.com/esandeen/traces/davej_ext3_oops1.txt