[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: kjournald panic in 2.4.20 RedHat 7.2


On Fri, 2003-04-18 at 05:30, Michael Harris wrote:
> Hi, If this is a redundant post I apologize. I am running 2.4.20 on what has been
> a very stable Athlon machine for months, tried to move a 2 GB file from an ext2
> partition to an ext3 and kjournald crashed. Here are the last reminants of my
> shell scrollback:

> mofo kernel: Assertion failure in journal_stop() at transaction.c:1384: "journal_current_handle() == handle"

Odd.  That is one assert failure I have _never_ seen reported.  Handle
mismatches in journal_start have happened from time to time when there
has been illegal recursion in the VM, but not in journal_stop.

The most likely cause would seem to me to be a stack overflow --- the
per-process field which holds the journal handle is right at the end of
the task struct, so it's one of the first fields to be clobbered in the
event of a stack overflow.

If that has happened, it's not due to ext3 --- the stack here isn't
close to being that sort of size --- but it's entirely possible that
there were IRQ routines operating during the function which overflowed
the stack.

In particular, we've seen that happen before with heavy network
activity, especially with multiple NICs, because the random sampling
that occurs for /dev/random during NIC activity was a heavy stack user.

There's a patch to address that in the very latest Marcelo kernel
trees.  It reduces the stack usage of the random sampling by several
hundred bytes.  The fix is in the 2.4.21-pre7 kernel.

> The file I was moving as you can see is a 2 GB file, ie. right at the limit of
> ext2 capacity, and I am wondering if this is the culprit.

No, ext2/3 can both operate beyond 2GB quite safely.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]