public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate)
@ 2005-08-04 19:49 Guillaume Pelat
  2005-08-05  9:38 ` Vladimir V. Saveliev
  0 siblings, 1 reply; 4+ messages in thread
From: Guillaume Pelat @ 2005-08-04 19:49 UTC (permalink / raw)
  To: Vladimir V. Saveliev; +Cc: linux-kernel

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).

Here are the error logs:

------------[ 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
  [<c01a359b>] reiserfs_do_truncate+0x2db/0x5e0
  [<c01a282f>] reiserfs_delete_object+0x3f/0x80
  [<c0189baf>] reiserfs_delete_inode+0xaf/0x150
  [<c0161835>] generic_delete_inode+0x95/0x130
  [<c0161a18>] generic_drop_inode+0x18/0x30
  [<c0161a86>] iput+0x56/0x80
  [<c018d07d>] reiserfs_new_inode+0x16d/0x7e0
  [<c0187d31>] reiserfs_create+0xc1/0x1f0
  [<c0156a4f>] vfs_create+0x9f/0x120
  [<c015732c>] open_namei+0x5cc/0x620
  [<c0146eac>] filp_open+0x3c/0x60
  [<c01471c5>] sys_open+0x55/0x90
  [<c0102889>] syscall_call+0x7/0xb
Code: 01 00 00 89 04 24 e8 31 fd ff ff c7 04 24 10 d6 2b c0 85 f6 89 d8 
0f 45 c7
ba c0 cd 3a c0 89
54 24 08 89 44 24 04 e8 21 80 f7 ff <0f> 0b 6a 01 2f 95 2b c0 c7 04 24 
34 d6 2b
c0 85 f6 be c0 cd 3
a
  Badness in do_exit at kernel/exit.c:787
  [<c0102e9e>] dump_stack+0x1e/0x30
  [<c0114fdc>] do_exit+0x2ec/0x300
  [<c010326f>] die+0x13f/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
  [<c01a359b>] reiserfs_do_truncate+0x2db/0x5e0
  [<c01a282f>] reiserfs_delete_object+0x3f/0x80
  [<c0189baf>] reiserfs_delete_inode+0xaf/0x150
  [<c0161835>] generic_delete_inode+0x95/0x130
  [<c0161a18>] generic_drop_inode+0x18/0x30
  [<c0161a86>] iput+0x56/0x80
  [<c018d07d>] reiserfs_new_inode+0x16d/0x7e0
  [<c0187d31>] reiserfs_create+0xc1/0x1f0
  [<c0156a4f>] vfs_create+0x9f/0x120
  [<c015732c>] open_namei+0x5cc/0x620
  [<c0146eac>] filp_open+0x3c/0x60
  [<c01471c5>] sys_open+0x55/0x90
  [<c0102889>] syscall_call+0x7/0xb

Best Regards,

Guillaume Pelat

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate)
  2005-08-04 19:49 Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate) Guillaume Pelat
@ 2005-08-05  9:38 ` Vladimir V. Saveliev
  2005-08-09 21:27   ` Guillaume Pelat
  0 siblings, 1 reply; 4+ messages in thread
From: Vladimir V. Saveliev @ 2005-08-05  9:38 UTC (permalink / raw)
  To: Guillaume Pelat; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2488 bytes --]

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

[-- Attachment #2: reiserfs-panic-fix.patch --]
[-- Type: text/plain, Size: 694 bytes --]

 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);
 }

_

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate)
  2005-08-05  9:38 ` Vladimir V. Saveliev
@ 2005-08-09 21:27   ` Guillaume Pelat
  2005-08-10 13:06     ` Jan Kara
  0 siblings, 1 reply; 4+ messages in thread
From: Guillaume Pelat @ 2005-08-09 21:27 UTC (permalink / raw)
  To: Vladimir V. Saveliev; +Cc: linux-kernel

Hi,

> 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 is the error log with reiserfs check mode on + patch applied :

ReiserFS: sda3: found reiserfs format "3.6" with standard journal
ReiserFS: sda3: warning: CONFIG_REISERFS_CHECK is set ON
ReiserFS: sda3: warning: - it is slow mode for debugging.
ReiserFS: sda3: using ordered data mode
ReiserFS: sda3: journal params: device sda3, size 8192, journal first 
block 18, max trans len 1024, max batch 900, max commit age 30, max 
trans age 30
ReiserFS: sda3: checking transaction log (sda3)
ReiserFS: sda3: journal-1153: found in header: first_unflushed_offset 
4607, last_flushed_trans_id 401988
ReiserFS: sda3: journal-1206: Starting replay from offset 
1726529608356351, trans_id 0
ReiserFS: sda3: journal-1299: Setting newest_mount_id to 23
ReiserFS: sda3: Using r5 hash to sort names
ReiserFS: sda3: warning: vs-8301: reiserfs_kmalloc: allocated memory 202992
[..a few days later..]
REISERFS: panic (device Null superblock): vs-8025: set_entry_sizes: 
(mode==c, insert_size==-4958), invalid length of directory item
Kernel panic - not syncing: REISERFS: panic (device Null superblock): 
vs-8025: set_entry_sizes: (mode==c, insert_size==-4958
), invalid length of directory item

The partition had just been checked with reiserfsck (2 days before) and 
it was ok. I didnt reboot between the reiserfsck and the crash.

Here was the result of reiserfsck before the crash:
Checking internal tree..finished
Comparing bitmaps..finished
Checking Semantic tree:
finished
No corruptions found
There are on the filesystem:
         Leaves 423085
         Internal nodes 2932
         Directories 1046685
         Other files 8739829
         Data block pointers 75038187 (0 of them are zero)
         Safe links 0
###########

Btw, i forgot to mention the mount options:
noatime,notail,usrquota


I just applied the patch submitted by Jan Kara:
http://bugzilla.kernel.org/show_bug.cgi?id=4771#c3
I dont know yet if it solves the problem :)

Best Regards,

Guillaume Pelat

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate)
  2005-08-09 21:27   ` Guillaume Pelat
@ 2005-08-10 13:06     ` Jan Kara
  0 siblings, 0 replies; 4+ messages in thread
From: Jan Kara @ 2005-08-10 13:06 UTC (permalink / raw)
  To: Guillaume Pelat; +Cc: Vladimir V. Saveliev, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 392 bytes --]

  Hi,

> I just applied the patch submitted by Jan Kara:
> http://bugzilla.kernel.org/show_bug.cgi?id=4771#c3
> I dont know yet if it solves the problem :)
  I actually should cure your problem but can have some unexpected
sideffects. Please try an attached patch (it's the new one I posted 
to bugzilla) - that should be a better fix.

								Honza
-- 
Jan Kara <jack@suse.cz>
SuSE CR Labs

[-- Attachment #2: reiser-2.6.13-rc6-create_fix.diff --]
[-- Type: text/plain, Size: 821 bytes --]

Initialize key object ID in inode so that we don't try to remove the inode
when we fail on some checks even before we manage to allocate something.

Signed-off-by: Jan Kara <jack@suse.cz>

diff -rupX /home/jack/.kerndiffexclude linux-2.6.13-rc6/fs/reiserfs/namei.c linux-2.6.13-rc6-reiser_create_fix/fs/reiserfs/namei.c
--- linux-2.6.13-rc6/fs/reiserfs/namei.c	2005-08-12 10:39:25.000000000 +0200
+++ linux-2.6.13-rc6-reiser_create_fix/fs/reiserfs/namei.c	2005-08-12 10:39:07.000000000 +0200
@@ -593,6 +593,9 @@ static int new_inode_init(struct inode *
 	 */
 	inode->i_uid = current->fsuid;
 	inode->i_mode = mode;
+	/* Make inode invalid - just in case we are going to drop it before
+	 * the initialization happens */
+	INODE_PKEY(inode)->k_objectid = 0;
 
 	if (dir->i_mode & S_ISGID) {
 		inode->i_gid = dir->i_gid;

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-08-10 13:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-04 19:49 Reiserfs 3.6 + quota enabled, crash on delete (or maybe truncate) Guillaume Pelat
2005-08-05  9:38 ` Vladimir V. Saveliev
2005-08-09 21:27   ` Guillaume Pelat
2005-08-10 13:06     ` Jan Kara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox