Skip to contentSkip to conversation

fs/jbd/checkpoint.c:427: "blocknr != 0"

BUG Franz Pletz 2 participants 3 messages Jul 24, 2004 – Jul 27, 2004

lore
Share & tools
lore
#0 lore raw

Hi!

I got the following error message after trying to mount my data-partition.

Assertion failure in cleanup_journal_tail() at fs/jbd/checkpoint.c:427: "blocknr != 0"

------------[ cut here ]------------
kernel BUG at fs/jbd/checkpoint.c:427!
invalid operand: 0000 [#1]
PREEMPT SMP
Modules linked in: ds yenta_socket pcmcia_core ide_cd cdrom usb_storage scsi_mod psmouse evdev pcspkr adm1021 i2c_i801 i2c_sensor i2c_dev i2c_core natsemi crc32
CPU:    1
EIP:    0060:[<c01a9df4>]    Not tainted VLI
EFLAGS: 00010282   (2.6.8-rc1-mm1)

EIP is at cleanup_journal_tail+0x12c/0x185
eax: 0000005a ebx: ddd3e000 ecx: c032b9bc edx: c032b9bc
esi: 00000000 edi: dfd09a00 ebp: 0004e110 esp: ddd3fda8
ds: 007b es: 007b ss: 0068
Process mount (pid: 8635, threadinfo=ddd3e000 task=df64e0b0)

Stack: c02fdd80 c02ebf6f c02fcba4 000001ab c02fcbcb ddd3e000 dfd09a00 ddd3e000
       00000000 c01acd79 dfd09a00 c011bda0 ddd3fdd8 ddd3fdd8 00003c70 
dfd09a14
       c03de41f dfd09a00 dfd07400 dfa39400 dfa39400 c019f39a dfd09a00 
c02feca8
Call Trace:
 [<c01acd79>] journal_flush+0x101/0x385
 [<c011bda0>] autoremove_wake_function+0x0/0x57
 [<c019f39a>] ext3_mark_recovery_complete+0x33/0x81
 [<c019e957>] ext3_fill_super+0x892/0xbcf
 [<c016004e>] get_sb_bdev+0x120/0x153
 [<c019f8e4>] ext3_get_sb+0x2f/0x33
 [<c019e0c5>] ext3_fill_super+0x0/0xbcf
 [<c0160273>] do_kern_mount+0x57/0xd3
 [<c0177ab5>] do_new_mount+0x9c/0xe0
 [<c0178205>] do_mount+0x145/0x194
 [<c0178067>] copy_mount_options+0x63/0xbc
 [<c01786a0>] sys_mount+0xd4/0x158
 [<c01050fb>] syscall_call+0x7/0xb
Code: 44 24 10 cb cb 2f c0 c7 44 24 0c ab 01 00 00 c7 44 24 08 a4 cb 2f c0 c7 44 24 04 6f bf 2e c0 c7 04 24 80 dd 2f c0 e8 e3 4a f7 ff <0f> 0b ab 01 a4 cb 2f c0 e9 3f ff ff ff e8 fd d7 13 00 e9 2d ff
 <6>note: mount[8635] exited with preempt_count 2

I'm using 2.6.8-rc1-mm1 but experience the same problem with a 2.4 and 2.6.7 kernel. Every other partition can be mounted without any problems. I ran fsck on the partition but no errors where found.

What can I do to rescue my data?
I do have backups but some recent work will otherwise be lost. :-(

Thanks!

Greetings from Germany,

Franz Pletz

#1 lore raw
Quoted 7 lines · [email protected] (Franz Pletz) wrote:

Hi!

I got the following error message after trying to mount my data-partition.

Assertion failure in cleanup_journal_tail() at fs/jbd/checkpoint.c:427:
"blocknr != 0"

That's new.

Quoted 40 lines
------------[ cut here ]------------
kernel BUG at fs/jbd/checkpoint.c:427!
invalid operand: 0000 [#1]
PREEMPT SMP
Modules linked in: ds yenta_socket pcmcia_core ide_cd cdrom usb_storage 
scsi_mod psmouse evdev pcspkr adm1021 i2c_i801 i2c_sensor i2c_dev 
i2c_core natsemi crc32
CPU:    1
EIP:    0060:[<c01a9df4>]    Not tainted VLI
EFLAGS: 00010282   (2.6.8-rc1-mm1)

EIP is at cleanup_journal_tail+0x12c/0x185
eax: 0000005a ebx: ddd3e000 ecx: c032b9bc edx: c032b9bc
esi: 00000000 edi: dfd09a00 ebp: 0004e110 esp: ddd3fda8
ds: 007b es: 007b ss: 0068
Process mount (pid: 8635, threadinfo=ddd3e000 task=df64e0b0)

Stack: c02fdd80 c02ebf6f c02fcba4 000001ab c02fcbcb ddd3e000 dfd09a00 
ddd3e000
        00000000 c01acd79 dfd09a00 c011bda0 ddd3fdd8 ddd3fdd8 00003c70 
dfd09a14
        c03de41f dfd09a00 dfd07400 dfa39400 dfa39400 c019f39a dfd09a00 
c02feca8
Call Trace:
  [<c01acd79>] journal_flush+0x101/0x385
  [<c011bda0>] autoremove_wake_function+0x0/0x57
  [<c019f39a>] ext3_mark_recovery_complete+0x33/0x81
  [<c019e957>] ext3_fill_super+0x892/0xbcf
  [<c016004e>] get_sb_bdev+0x120/0x153
  [<c019f8e4>] ext3_get_sb+0x2f/0x33
  [<c019e0c5>] ext3_fill_super+0x0/0xbcf
  [<c0160273>] do_kern_mount+0x57/0xd3
  [<c0177ab5>] do_new_mount+0x9c/0xe0
  [<c0178205>] do_mount+0x145/0x194
  [<c0178067>] copy_mount_options+0x63/0xbc
  [<c01786a0>] sys_mount+0xd4/0x158
  [<c01050fb>] syscall_call+0x7/0xb
Code: 44 24 10 cb cb 2f c0 c7 44 24 0c ab 01 00 00 c7 44 24 08 a4 cb 2f 

c0 c7 44 24 04 6f bf 2e c0 c7 04 24 80 dd 2f c0 e8 e3 4a f7 ff <0f> 0b ab 01 a4 cb 2f c0 e9 3f ff ff ff e8 fd d7 13 00 e9 2d ff
<6>note: mount[8635] exited with preempt_count 2

Quoted 6 lines

I'm using 2.6.8-rc1-mm1 but experience the same problem with a 2.4 and 2.6.7 kernel. Every other partition can be mounted without any problems. I ran fsck on the partition but no errors where found.

What can I do to rescue my data?
I do have backups but some recent work will otherwise be lost. :-(

I assume you have a wrecked journal, which is triggering this assert:

	} else {
		first_tid = journal->j_transaction_sequence;
		blocknr = journal->j_head;
	}
	spin_unlock(&journal->j_list_lock);
	J_ASSERT(blocknr != 0);

	/* If the oldest pinned transaction is at the tail of the log
           already then there's not much we can do right now. */

e2fsck should have fixed this up when doing its journal replay.

You could probably get your data back by temporarily removing the journal:

	tune2fs -O ^has_journal /dev/hda1
	e2fsck -f /dev/hda1
	tune2fs -j /dev/hda1
	e2fsck -f /dev/hda1
#2 lore raw
Quoted 12 lines · Andrew Morton

I assume you have a wrecked journal, which is triggering this assert:

	} else {
		first_tid = journal->j_transaction_sequence;
		blocknr = journal->j_head;
	}
	spin_unlock(&journal->j_list_lock);
	J_ASSERT(blocknr != 0);

	/* If the oldest pinned transaction is at the tail of the log
           already then there's not much we can do right now. */
Quoted 8 lines

e2fsck should have fixed this up when doing its journal replay.

You could probably get your data back by temporarily removing the journal:

	tune2fs -O ^has_journal /dev/hda1
	e2fsck -f /dev/hda1
	tune2fs -j /dev/hda1
	e2fsck -f /dev/hda1

That solved the problem. Thank you very much.

I've read the tune2fs manpage in order to rebuild the journal in some way. But as I didn't want to destroy my data, I didn't dare to do something unless I am really sure what I'm doing.

I can't track that error down to a specific issue because the machine didn't lock up or something similar. I just shut it down and got that message when booting it the other day.

Franz