Re: Assertion failure in journal_flush()

Andreas Dilger
2002-01-07T19:35:30Z

On Jan 07, 2002  17:24 +0100, Carsten Otte wrote:
> We encountered a reproduceable problem with ext3:
> When issuing a FIBMAP ioctl for a block written right before while
> the FS is under high load (RH build universe), the assertion
> !journal->j_running_transaction fails at the bottom of journal_flush()
> in fs/jbd/journal.c.
> We encountered this problem with the arch=s390x (64 bit big endian)
> bootloader zipl, I'll try to reproduce it with 2.4.latest on arch=i386.
> I'll try
> to create a stack backtrace as well by inserting a BUG();.
>
> Strace of problem:
> ioctl(5, FIBMAP, 0x1ffffffe528)         = 0
> close(5)                                = 0
> write(4,
"\0\342\0\6\4\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
> 4096) = 4096
> ioctl(4, FIBMAP <unfinished ...>
> +++ killed by SIGSEGV +++
>
> Syslog output of problem:
> z02 kernel: Assertion failure in journal_flush() at journal.c:1198:
> "!journal->j_running_transaction"

Hmm, you should get an oops and stack trace with an assertion (see J_ASSERT
macro in include/linux/jbd.h).  Maybe it is something with the S/390 BUG
macro that is different?

Cheers, Andreas
--
Andreas Dilger