an infinite loop in ext4 in 3.14

From: Mikulas Patocka
Date: Thu Apr 17 2014 - 15:23:32 EST


Hi

I hit a bug in ext4 - jbd2 was stuck in an infinite loop when remounting
the root filesystem read-only during shutdown.

The filesystem is ext3, but it uses the ext4 driver with the following
options: rw,relatime,discard,errors=remount-ro,data=ordered

The machine was stuck, but it was possible to obtain a stacktrace with
Alt-SysRQ-P. I put several stacktraces here:

http://people.redhat.com/~mpatocka/crashes/ext4/

The stacktraces change in jbd2_log_do_checkpoint and
jbd2_cleanup_journal_tail. jbd2_log_do_checkpoint doesn't call
jbd2_cleanup_journal_tail from a loop, so the the probable location of the
infinite loop was this piece of code in jbd2_journal_flush:

while (!err && journal->j_checkpoint_transactions != NULL) {

Mikulas
--
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/