From: Xuan Baldauf <xuan--reiserfs@baldauf.org>
To: reiserfs-list@namesys.com
Subject: PAP-12365: check_after_balance_leaf: S is incorrectkernel BUG at prints.c:334! (Part 4)
Date: Mon, 12 Aug 2002 15:17:21 +0200 [thread overview]
Message-ID: <3D57B561.1481B525@baldauf.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 2048 bytes --]
I checked the filesystem multiple times with
reiserfsck-3.x.0b (first) and reiserfsck-3.x.0k-pre8 (then).
The first run showed a bitmap error which was fixed then
with "--fix-fixable". All subsequent runs could not find any
error. All logs above were captured aftere these reiserfsck
runs.
The first shown errors
Aug 10 22:15:44 router0 kernel: B_FREE_SPACE
(PATH_H_PBUFFER(tb->tb_path,0)) = 1596; MAX_CHILD_SIZE
(4072) - dc_size( [dc_number=-981319276, dc_size=53157], 56
) [2472] = 1600
Aug 10 21:10:45 router0 kernel: B_FREE_SPACE
(PATH_H_PBUFFER(tb->tb_path,0)) = 1608; MAX_CHILD_SIZE
(4072) - dc_size( [dc_number=0, dc_size=53157], 97 ) [2460]
= 1612
Aug 10 21:21:40 router0 kernel: B_FREE_SPACE
(PATH_H_PBUFFER(tb->tb_path,0)) = 1600; MAX_CHILD_SIZE
(4072) - dc_size( [dc_number=0, dc_size=53157], 99 ) [2468]
= 1604
Aug 10 21:38:57 router0 kernel: B_FREE_SPACE
(PATH_H_PBUFFER(tb->tb_path,0)) = 1600; MAX_CHILD_SIZE
(4072) - dc_size( [dc_number=0, dc_size=53157], 98 ) [2468]
= 1604
Aug 10 22:05:21 router0 kernel: B_FREE_SPACE
(PATH_H_PBUFFER(tb->tb_path,0)) = 8; MAX_CHILD_SIZE (4072) -
dc_size( [dc_number=0, dc_size=53157], 97 ) [4060] = 12
seem to indicate that reiserfs is somehow miscalculating
something by 4 units, where the result of the left
calculation is always 4 less than the result of the right
calculation. Reiserfs detects that something is wrong, but
reiserfsck did not detect this?
I also checked the machine with memcheck and tried to
reproduce the problem with DMA off. Memcheck did not show
errors and switching DMA off did not show differences.
Kernel compilation works so a hardware error of the machine
is unlikely, although the problems appeared after a series
of unscheduled poweroffs.
I always let reiserfs run under REISERFS_CHECK to be sure
that everything is okay (I do not care for CPU time, the
machine is fast), and did not find any problems so far. Now
I'm nervous about not running the machine with
REISERFS_CHECK anymore...
Please help,
Xuân.
[-- Attachment #2: linux-2.4.20.showStackOnFailingConntrackListDelete.patch --]
[-- Type: text/plain, Size: 1252 bytes --]
--- linux/include/linux/netfilter_ipv4/listhelp.h.orig Sun Aug 12 18:29:34 2001
+++ linux/include/linux/netfilter_ipv4/listhelp.h Tue Aug 21 20:23:28 2001
@@ -49,15 +49,20 @@
return LIST_FIND(head, __list_cmp_same, void *, entry) != NULL;
}
+extern void show_stack(unsigned long * esp);
+
/* Delete from list. */
#ifdef CONFIG_NETFILTER_DEBUG
#define LIST_DELETE(head, oldentry) \
do { \
ASSERT_WRITE_LOCK(head); \
- if (!list_inlist(head, oldentry)) \
+ if (!list_inlist(head, oldentry)) { \
+ show_stack(NULL); \
printk("LIST_DELETE: %s:%u `%s'(%p) not in %s.\n", \
- __FILE__, __LINE__, #oldentry, oldentry, #head); \
- else list_del((struct list_head *)oldentry); \
+ __FILE__, __LINE__, #oldentry, oldentry, #head); \
+ } else { \
+ list_del((struct list_head *)oldentry); \
+ } \
} while(0)
#else
#define LIST_DELETE(head, oldentry) list_del((struct list_head *)oldentry)
--- linux/arch/i386/kernel/i386_ksyms.c.orig Tue Aug 21 20:31:59 2001
+++ linux/arch/i386/kernel/i386_ksyms.c Tue Aug 21 20:37:54 2001
@@ -161,3 +161,7 @@
#ifdef CONFIG_X86_PAE
EXPORT_SYMBOL(empty_zero_page);
#endif
+
+extern void show_stack(unsigned long * esp);
+
+EXPORT_SYMBOL(show_stack);
[-- Attachment #3: linux-2.4.20.reiserfs.PAP-5140.nervous.patch --]
[-- Type: text/plain, Size: 1203 bytes --]
diff --exclude=*.o -Nur linux/fs/reiserfs.orig/prints.c linux/fs/reiserfs/prints.c
--- linux/fs/reiserfs.orig/prints.c Sat Aug 10 18:42:00 2002
+++ linux/fs/reiserfs/prints.c Sat Aug 10 20:58:52 2002
@@ -338,6 +338,15 @@
sb ? kdevname(sb->s_dev) : "sb == 0", error_buf);
}
+extern void show_stack(unsigned long * esp);
+
+void reiserfs_nervous (struct super_block * sb, const char * fmt, ...)
+{
+ show_reiserfs_locks() ;
+ do_reiserfs_warning(fmt);
+ printk ( KERN_EMERG "%s", error_buf);
+ show_stack(NULL);
+}
void print_virtual_node (struct virtual_node * vn)
{
diff --exclude=*.o -Nur linux/fs/reiserfs.orig/stree.c linux/fs/reiserfs/stree.c
--- linux/fs/reiserfs.orig/stree.c Sat Aug 10 18:42:00 2002
+++ linux/fs/reiserfs/stree.c Sat Aug 10 20:58:04 2002
@@ -740,7 +740,11 @@
#ifdef CONFIG_REISERFS_CHECK
if ( cur_tb ) {
print_cur_tb ("5140");
- reiserfs_panic(p_s_sb, "PAP-5140: search_by_key: schedule occurred in do_balance!");
+ if (0) {
+ reiserfs_panic(p_s_sb, "PAP-5140: search_by_key: schedule occurred in do_balance!");
+ } else {
+ reiserfs_nervous(p_s_sb, "PAP-5140: search_by_key: schedule occurred in do_balance!");
+ }
}
#endif
next reply other threads:[~2002-08-12 13:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-12 13:17 Xuan Baldauf [this message]
2002-08-12 15:18 ` PAP-12365: check_after_balance_leaf: S is incorrectkernel BUG at prints.c:334! (Part 4) Kuba Ober
2002-08-12 18:51 ` Xuan Baldauf
2002-08-13 3:47 ` Manuel Krause
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=3D57B561.1481B525@baldauf.org \
--to=xuan--reiserfs@baldauf.org \
--cc=reiserfs-list@namesys.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.