public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Vladimir V. Saveliev" <vs@namesys.com>
To: Guillaume Pelat <guillaume.pelat@winch-hebergement.net>
Cc: linux-kernel@vger.kernel.org, gp@winch-hebergement.net
Subject: Re: Reiserfs 3.6 + quota enabled, crash on delete
Date: Wed, 27 Jul 2005 18:11:47 +0400	[thread overview]
Message-ID: <42E79623.1000309@namesys.com> (raw)
In-Reply-To: <42E7828E.9080903@winch-hebergement.net>

[-- Attachment #1: Type: text/plain, Size: 3166 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 
> truncate 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.
> 
> You can find the error logs below :
> 
> ======================================================================
> ReiserFS: sda3: warning: vs-15011: reiserfs_release_objectid: tried to 
> free free object id (96557091)
> ReiserFS: sda3: warning: PAP-5660: reiserfs_do_truncate: wrong result -1 
> of search for [847141 185744 0xfffffffffffffff DIRECT]
> ReiserFS: sda3: warning: clm-2100: nesting info a different FS

The attached patch should help to get rid of clm-2100 and to avoid crash.

Also, I think you should reiserfsck sda3.

> ReiserFS: sda3: warning: clm-2100: nesting info a different FS
> ReiserFS: sda3: warning: clm-2100: nesting info a different FS
> ReiserFS: sda3: warning: clm-2100: nesting info a different FS
> REISERFS: panic (device sda3): journal-1577: handle trans id 1122409068 
> != current trans id 3947596
> ------------[ cut here ]------------
> kernel BUG at fs/reiserfs/prints.c:362!
> invalid operand: 0000 [#1]
> CPU:    0
> EIP:    0060:[<c019785f>]    Not tainted VLI
> EFLAGS: 00010282   (2.6.11.6)
> EIP is at reiserfs_panic+0x4f/0x80
> eax: 00000068   ebx: c02be9bf   ecx: c038e8f8   edx: c02eecac
> esi: f7eea000   edi: f7eea140   ebp: f3391944   esp: f339192c
> ds: 007b   es: 007b   ss: 0068
> Process pure-ftpd (pid: 27841, threadinfo=f3390000 task=d3053530)
> Stack: c02c3ee0 f7eea140 c03b3580 f7eea000 00000000 f895d000 f3391984 
> c01a6d01
>        f7eea000 c02c6440 42e69a6c 003c3c4c 00000002 f3391970 cdc49b40 
> 00000002
>        cdc49b40 f3391984 00000000 052f8dee 00000000 f2bbfe60 f3391a08 
> c019ebba
> Call Trace:
>  [<c010282f>] show_stack+0x7f/0xa0
>  [<c01029d1>] show_registers+0x151/0x1c0
>  [<c0102bc8>] die+0xc8/0x150
>  [<c010307c>] do_invalid_op+0xbc/0xd0
>  [<c01024bb>] error_code+0x2b/0x30
>  [<c01a6d01>] journal_mark_dirty+0x271/0x2a0
>  [<c019ebba>] prepare_for_delete_or_cut+0x54a/0x720
>  [<c019fdaa>] reiserfs_cut_from_item+0xca/0x5f0
>  [<c01a0668>] reiserfs_do_truncate+0x2e8/0x610
>  [<c019f7ef>] reiserfs_delete_object+0x3f/0x80
>  [<c018636c>] reiserfs_delete_inode+0x8c/0x110
>  [<c015ed85>] generic_delete_inode+0x95/0x130
>  [<c015efc6>] iput+0x56/0x80
>  [<c018995a>] reiserfs_new_inode+0x13a/0x740
>  [<c01847b7>] reiserfs_create+0x97/0x1b0
>  [<c0153e0f>] vfs_create+0x9f/0x120
>  [<c01546f9>] open_namei+0x5d9/0x630
>  [<c0144bbc>] filp_open+0x3c/0x60
>  [<c0144ed6>] sys_open+0x46/0x90
>  [<c0102313>] syscall_call+0x7/0xb
> Code: 01 00 00 89 04 24 e8 31 fd ff ff c7 04 24 e0 3e 2c c0 85 f6 89 d8 
> 0f 45 c7 ba 80 35 3b c0 89 54 24 08 89 44 24 04 e8 c1 a9 f7ff <0f> 0b 6a 
> 01 02 ef 2b c0 c7 04 24 20 3f 2c c0 85 f6 b9 80 35 3b
> ======================================================================
> 

[-- 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;

_

      reply	other threads:[~2005-07-27 14:11 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-27 12:48 Reiserfs 3.6 + quota enabled, crash on delete Guillaume Pelat
2005-07-27 14:11 ` Vladimir V. Saveliev [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=42E79623.1000309@namesys.com \
    --to=vs@namesys.com \
    --cc=gp@winch-hebergement.net \
    --cc=guillaume.pelat@winch-hebergement.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox