Re: Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate)

From: Vladimir V. Saveliev
Date: Fri Aug 05 2005 - 04:41:47 EST


Hello

Guillaume Pelat wrote:
Hi,

>> I'm having a crash with reiserfs 3.6 + user quota enabled, on
>> 2.6.11.10 kernel (no smp), apparently when deleting files (or maybe
>> during a runcate operation). The problem seems to happen under high
>> load.
>> When the error occurs, all the processes accessing the reiserfs
>> partition seems to hang. This problem happened several times on
>> different servers (having the same hardware configuration) during
>> last weeks.

> The attached patch should help to get rid of clm-2100 and to avoid
> crash.
> Also, I think you should reiserfsck sda3.

Thanks for your answer. I tried the patch attached to your mail, but it seems that it doesnt solve my problem :)
The error also occured after i did a reiserfsck on sda3, I also tested 2.6.13-rc4 with your patch applied, without success (the error also occured on serveral servers having the same hardware configuration).


Would you, please, try to reproduce the problem having reiserfs check mode on.
(it is File systems->Reiserfs support->Enable reiserfs debug mode in kernel configuration)
and with attached patch.

Here are the error logs:


Was there anything about reiserfs in the logs before this dump?

------------[ cut here ]------------
kernel BUG at fs/reiserfs/prints.c:362!
invalid operand: 0000 [#1]
CPU: 0
EIP: 0060:[<c019ae2f>] Not tainted VLI
EFLAGS: 00010296 (2.6.13-rc4-endy)
EIP is at reiserfs_panic+0x4f/0x80
eax: 00000053 ebx: c02b8fde ecx: 00000000 edx: c02dfdac
esi: 00000000 edi: 00000140 ebp: e75b383c esp: e75b3824
ds: 007b es: 007b ss: 0068
Process pure-ftpd (pid: 12771, threadinfo=e75b2000 task=f091d530)
Stack: c02bd610 c02b8fde c03acdc0 00000fa0 c0971154 00000002 e75b3864 c01ac75f
00000000 c02bf89c 00000fa0 00000002 00020000 00000000 c097101c 00000000
e75b38b8 c01939d3 c097101c 00000fd0 00000000 00000000 00000000 00000000
Call Trace:
[<c0102e5f>] show_stack+0x7f/0xa0
[<c0103002>] show_registers+0x152/0x1c0
[<c01031f8>] die+0xc8/0x140
[<c0103325>] do_trap+0xb5/0xc0
[<c010366c>] do_invalid_op+0xbc/0xd0
[<c0102aa3>] error_code+0x4f/0x54
[<c01ac75f>] direntry_check_left+0x8f/0x90
[<c01939d3>] get_num_ver+0x303/0x350
[<c01949ac>] ip_check_balance+0x3dc/0xbc0
[<c0195948>] check_balance+0x58/0x70
[<c019623b>] fix_nodes+0x15b/0x420
[<c01a2daf>] reiserfs_cut_from_item+0x10f/0x570
fs/reiserfs/prints.c | 3 ---
1 files changed, 3 deletions(-)

diff -puN fs/reiserfs/prints.c~reiserfs-panic-fix fs/reiserfs/prints.c
--- linux-2.6.13-rc4-mm1/fs/reiserfs/prints.c~reiserfs-panic-fix 2005-08-05 13:36:09.947391212 +0400
+++ linux-2.6.13-rc4-mm1-vs/fs/reiserfs/prints.c 2005-08-05 13:36:23.346671407 +0400
@@ -359,9 +359,6 @@ void reiserfs_panic(struct super_block *
do_reiserfs_warning(fmt);
printk(KERN_EMERG "REISERFS: panic (device %s): %s\n",
reiserfs_bdevname(sb), error_buf);
- BUG();
-
- /* this is not actually called, but makes reiserfs_panic() "noreturn" */
panic("REISERFS: panic (device %s): %s\n",
reiserfs_bdevname(sb), error_buf);
}

_