* Re: Bug with reiser3 and quota in 2.6.12?
2005-10-03 14:10 Bug with reiser3 and quota in 2.6.12? Jørgen Hermanrud Fjeld
@ 2005-10-03 14:53 ` Vladimir V. Saveliev
0 siblings, 0 replies; 2+ messages in thread
From: Vladimir V. Saveliev @ 2005-10-03 14:53 UTC (permalink / raw)
To: Jørgen Hermanrud Fjeld; +Cc: reiserfs-list
[-- Attachment #1: Type: text/plain, Size: 6421 bytes --]
Hello
Jørgen Hermanrud Fjeld wrote:
> Hi!
> I'm posting this BUG on the reiserfs list, as I presume it is a
> reiser3/quota bug. If this is not the proper manner of reporting this
> bug, please advice me.
>
> I have a production server that suddenly experience problems with
> reiser3 and quota enabled.
> The server is running the latest 2.6.12 kernel offered by Debian.
> I
> I have not been able to locate the conditions of the error, but the
> server has been running stable for many months, so it seems likely the
> error is related to quota handling when limits are reached.
> The error is repeatable, and processes using files on the mountpoint hang.
> reiserfsck does not report any errors on the partition.
> When the filesystem is mounted without user and group quota, no crash
> occurs.
> In the error log, dm-3 is the problematic (/home) partition that
> procmail is accessing.
>
> The crash log reported from the kernel is:
> ##########################################
> Oct 1 16:19:36 ramaya kernel: ReiserFS: dm-3: warning: PAP-5660: reiserfs_do_truncate: wrong result -1 of search for [8 135167768 0xfffffffffffffff DIRECT]
> Oct 1 16:19:36 ramaya kernel: ReiserFS: dm-2: warning: clm-2100: nesting info a different FS
The attached patch should eliminate clm-2100 warning and probably will make
reiserfs to not crash after PAP-5660.
However, PAP-5660 indicates that file with inode number 135167768 in directory
with inode number 8 is corrupted.
Try to remove it or rename it so that it does not get accessed.
> Oct 1 16:19:36 ramaya kernel: ------------[ cut here ]------------
> Oct 1 16:19:36 ramaya kernel: SMP
> Oct 1 16:19:36 ramaya kernel: Modules linked in: nfsd exportfs lockd sunrpc lp af_packet ipv6 sch_ingress cls_u32 sch_sfq sch_htb ipt_TOS ipt_MASQUERADE ipt_REJECT ipt_LOG ipt_state ipt_pkttype ipt_recent ipt_iprange ipt_physdev ipt_multiport ipt_conntrack iptable_mangle ip_nat_irc ip_nat_ftp iptable_nat ip_conntrack_irc ip_conntrack_ftp ip_conntrack iptable_filter ip_tables evdev pcspkr rtc floppy parport_pc parport pci_hotplug serverworks ide_core i2c_piix4 i2c_core sworks_agp agpgart st sym53c8xx ohci_hcd usbcore e100 mii quota_v2 reiserfs isofs vfat fat ext2 ext3 jbd mbcache dm_mod DAC960 unix fbcon tileblit font bitblit vesafb cfbcopyarea cfbimgblt cfbfillrect softcursor capability commoncap aic7xxx scsi_transport_spi scsi_mod
> Oct 1 16:19:36 ramaya kernel: CPU: 0
> Oct 1 16:19:36 ramaya kernel: EIP: 0060:[pg0+945613644/1069663232] Not tainted VLI
> Oct 1 16:19:36 ramaya kernel: EFLAGS: 00010246 (2.6.12-1-686-smp)
> Oct 1 16:19:36 ramaya kernel: EIP is at reiserfs_get_block+0x118c/0x14d0 [reiserfs]
> Oct 1 16:19:36 ramaya kernel: eax: 00000000 ebx: 00000000 ecx: 00000001 edx: 00000001
> Oct 1 16:19:36 ramaya kernel: esi: 00000000 edi: f724ca00 ebp: 00000003 esp: ed369bcc
> Oct 1 16:19:36 ramaya kernel: ds: 007b es: 007b ss: 0068
> Oct 1 16:19:36 ramaya kernel: Process procmail (pid: 5915, threadinfo=ed368000 task=ef514ac0)
> Oct 1 16:19:36 ramaya kernel: Stack: ee7c20fc 00000000 00000044 efdbd0b0 00270008 00000000 00001000 00000000
> Oct 1 16:19:36 ramaya kernel: c016532f 00270008 000002b8 0000001e 00000001 0000002c 00000061 00000001
> Oct 1 16:19:36 ramaya kernel: c15cb060 00000001 00000000 ee7c20ac c15cb060 00000000 c02fec80 c02ff484
> Oct 1 16:19:36 ramaya kernel: Call Trace:
> Oct 1 16:19:36 ramaya kernel: [__find_get_block+207/288] __find_get_block+0xcf/0x120
> Oct 1 16:19:36 ramaya kernel: [cache_init_objs+116/160] cache_init_objs+0x74/0xa0
> Oct 1 16:19:36 ramaya kernel: [cache_grow+307/464] cache_grow+0x133/0x1d0
> Oct 1 16:19:36 ramaya kernel: [alloc_buffer_head+62/80] alloc_buffer_head+0x3e/0x50
> Oct 1 16:19:36 ramaya kernel: [alloc_page_buffers+128/208] alloc_page_buffers+0x80/0xd0
> Oct 1 16:19:36 ramaya kernel: [create_empty_buffers+73/160] create_empty_buffers+0x49/0xa0
> Oct 1 16:19:36 ramaya kernel: [__block_prepare_write+714/1232] __block_prepare_write+0x2ca/0x4d0
> Oct 1 16:19:36 ramaya kernel: [radix_tree_insert+267/320] radix_tree_insert+0x10b/0x140
> Oct 1 16:19:36 ramaya kernel: [add_to_page_cache+185/224] add_to_page_cache+0xb9/0xe0
> Oct 1 16:19:36 ramaya kernel: [block_prepare_write+49/64] block_prepare_write+0x31/0x40
> Oct 1 16:19:36 ramaya kernel: [pg0+945609152/1069663232] reiserfs_get_block+0x0/0x14d0 [reiserfs]
> Oct 1 16:19:36 ramaya kernel: [pg0+945609152/1069663232] reiserfs_get_block+0x0/0x14d0 [reiserfs]
> Oct 1 16:19:36 ramaya kernel: [pg0+945626492/1069663232] reiserfs_prepare_write+0x7c/0x190 [reiserfs]
> Oct 1 16:19:36 ramaya kernel: [pg0+945609152/1069663232] reiserfs_get_block+0x0/0x14d0 [reiserfs]
> Oct 1 16:19:36 ramaya kernel: [generic_cont_expand+206/448] generic_cont_expand+0xce/0x1c0
> Oct 1 16:19:36 ramaya kernel: [pg0+945638699/1069663232] reiserfs_check_for_tail_and_convert+0x16b/0x240 [reiserfs]
> Oct 1 16:19:36 ramaya kernel: [pg0+945642160/1069663232] reiserfs_file_write+0x340/0x750 [reiserfs]
> Oct 1 16:19:36 ramaya kernel: [dput+232/480] dput+0xe8/0x1e0
> Oct 1 16:19:36 ramaya kernel: [__d_lookup+269/288] __d_lookup+0x10d/0x120
> Oct 1 16:19:36 ramaya kernel: [in_group_p+67/144] in_group_p+0x43/0x90
> Oct 1 16:19:36 ramaya kernel: [permission+210/288] permission+0xd2/0x120
> Oct 1 16:19:36 ramaya kernel: [may_open+116/704] may_open+0x74/0x2c0
> Oct 1 16:19:36 ramaya kernel: [__posix_lock_file+399/1504] __posix_lock_file+0x18f/0x5e0
> Oct 1 16:19:36 ramaya kernel: [open_namei+148/1744] open_namei+0x94/0x6d0
> Oct 1 16:19:36 ramaya kernel: [get_empty_filp+145/288] get_empty_filp+0x91/0x120
> Oct 1 16:19:36 ramaya kernel: [file_move+32/96] file_move+0x20/0x60
> Oct 1 16:19:36 ramaya kernel: [fcntl_setlk64+174/656] fcntl_setlk64+0xae/0x290
> Oct 1 16:19:36 ramaya kernel: [vfs_write+210/352] vfs_write+0xd2/0x160
> Oct 1 16:19:36 ramaya kernel: [sys_write+75/128] sys_write+0x4b/0x80
> Oct 1 16:19:36 ramaya kernel: [syscall_call+7/11] syscall_call+0x7/0xb
> Oct 1 16:19:36 ramaya kernel: Code: 7c 24 0c 89 54 24 04 89 0c 24 e8 f0 ec ff ff 85 c0 89 c3 0f 85 c4 fa ff ff 8b 8c 24 34 01 00 00 8b b9 a0 00 00 00 e9 14 f0 ff ff <0f> 0b d3 06 52 59 9d f8 b8 01 00 00 00 89 44 24 40 e9 48 ef ff
> ##########################################
>
[-- Attachment #2: reiserfs-add-missing-journal_end.patch --]
[-- Type: text/plain, Size: 1181 bytes --]
This patch adds missing calls to journal_end on error handling code paths.
fs/reiserfs/inode.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletion(-)
diff -puN fs/reiserfs/inode.c~reiserfs-add-missing-journal_end fs/reiserfs/inode.c
--- linux-2.6.11.10/fs/reiserfs/inode.c~reiserfs-add-missing-journal_end 2005-07-27 18:03:06.197544430 +0400
+++ linux-2.6.11.10-vs/fs/reiserfs/inode.c 2005-07-27 18:04:07.363047159 +0400
@@ -46,6 +46,7 @@ void reiserfs_delete_inode (struct inode
reiserfs_update_inode_transaction(inode) ;
if (reiserfs_delete_object (&th, inode)) {
+ journal_end(&th, inode->i_sb, jbegin_count);
up (&inode->i_sem);
goto out;
}
@@ -2015,8 +2016,10 @@ int reiserfs_truncate_file(struct inode
either appears truncated properly or not truncated at all */
add_save_link (&th, p_s_inode, 1);
error = reiserfs_do_truncate (&th, p_s_inode, page, update_timestamps) ;
- if (error)
+ if (error) {
+ journal_end (&th, p_s_inode->i_sb, JOURNAL_PER_BALANCE_CNT * 2 + 1);
goto out;
+ }
error = journal_end (&th, p_s_inode->i_sb, JOURNAL_PER_BALANCE_CNT * 2 + 1);
if (error)
goto out;
_
^ permalink raw reply [flat|nested] 2+ messages in thread