All of lore.kernel.org
 help / color / mirror / Atom feed
* reiser4 OOPSes and panics when out of memory
@ 2006-07-16 17:44 maciejej
  2006-07-17 14:10 ` Vladimir V. Saveliev
  0 siblings, 1 reply; 8+ messages in thread
From: maciejej @ 2006-07-16 17:44 UTC (permalink / raw)
  To: reiserfs-list

Has my previous post
(http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
overlooked, or have I not provided enough information? Do I need to
reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?

The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
physical memory.


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

* Re: reiser4 OOPSes and panics when out of memory
  2006-07-16 17:44 reiser4 OOPSes and panics when out of memory maciejej
@ 2006-07-17 14:10 ` Vladimir V. Saveliev
  2006-07-17 17:38   ` Vladimir V. Saveliev
  0 siblings, 1 reply; 8+ messages in thread
From: Vladimir V. Saveliev @ 2006-07-17 14:10 UTC (permalink / raw)
  To: maciejej; +Cc: reiserfs-list

Hello

On Sun, 2006-07-16 at 12:44 -0500, maciejej@msoe.edu wrote:
> Has my previous post
> (http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
> overlooked, or have I not provided enough information? Do I need to
> reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?
> 

your test crashes reiser4 on my test box. I hope to get a patch ready
later today. Not sure that I got the same problem as you, though. We
will see. 

> The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
> reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
> physical memory.
> 
> 


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

* Re: reiser4 OOPSes and panics when out of memory
  2006-07-17 14:10 ` Vladimir V. Saveliev
@ 2006-07-17 17:38   ` Vladimir V. Saveliev
  2006-07-18  6:52     ` Jake Maciejewski
  0 siblings, 1 reply; 8+ messages in thread
From: Vladimir V. Saveliev @ 2006-07-17 17:38 UTC (permalink / raw)
  To: maciejej; +Cc: reiserfs-list

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

Hello

On Mon, 2006-07-17 at 18:10 +0400, Vladimir V. Saveliev wrote:
> Hello
> 
> On Sun, 2006-07-16 at 12:44 -0500, maciejej@msoe.edu wrote:
> > Has my previous post
> > (http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
> > overlooked, or have I not provided enough information? Do I need to
> > reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?
> > 
> 

please try the attached patch.

> your test crashes reiser4 on my test box. I hope to get a patch ready
> later today. Not sure that I got the same problem as you, though. We
> will see. 
> 
> > The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
> > reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
> > physical memory.
> > 
> > 
> 
> 

[-- Attachment #2: Type: text/x-patch, Size: 1962 bytes --]


diff -puN fs/reiser4/plugin/file_ops_readdir.c~reiser4-fix-readdir fs/reiser4/plugin/file_ops_readdir.c
--- linux-2.6.17-mm6/fs/reiser4/plugin/file_ops_readdir.c~reiser4-fix-readdir	2006-07-17 18:43:50.000000000 +0400
+++ linux-2.6.17-mm6-vs/fs/reiser4/plugin/file_ops_readdir.c	2006-07-17 19:02:38.000000000 +0400
@@ -349,6 +349,7 @@ feed_entry(struct file *f,
 	 */
 	assert("nikita-3436", lock_stack_isclean(get_current_lock_stack()));
 
+	txn_restart_current();
 	result = filldir(dirent, name, (int)strlen(name),
 			 /* offset of this entry */
 			 f->f_pos,
diff -puN fs/reiser4/plugin/file/file.c~reiser4-fix-readdir fs/reiser4/plugin/file/file.c
--- linux-2.6.17-mm6/fs/reiser4/plugin/file/file.c~reiser4-fix-readdir	2006-07-17 20:39:11.000000000 +0400
+++ linux-2.6.17-mm6-vs/fs/reiser4/plugin/file/file.c	2006-07-17 21:35:31.000000000 +0400
@@ -781,9 +781,12 @@ int find_or_create_extent(struct page *p
 
 	lock_page(page);
 	node = jnode_of_page(page);
-	unlock_page(page);
-	if (IS_ERR(node))
+	if (IS_ERR(node)) {
+		unlock_page(page);
 		return PTR_ERR(node);
+	}
+	JF_SET(node, JNODE_WRITE_PREPARED);
+	unlock_page(page);
 
 	if (node->blocknr == 0) {
 		plugged_hole = 0;
@@ -791,6 +794,7 @@ int find_or_create_extent(struct page *p
 				       (loff_t)page->index << PAGE_CACHE_SHIFT,
 				       &plugged_hole);
 		if (result) {
+			JF_CLR(node, JNODE_WRITE_PREPARED);
 			jput(node);
 			warning("", "update_extent failed: %d", result);
 			return result;
@@ -806,6 +810,7 @@ int find_or_create_extent(struct page *p
 	}
 
 	BUG_ON(node->atom == NULL);
+	JF_CLR(node, JNODE_WRITE_PREPARED);
 	jput(node);
 
 	if (get_current_context()->entd) {
@@ -1729,7 +1734,9 @@ ssize_t read_unix_file(struct file *file
 			return RETERR(-EFAULT);
 		}
 
-		read = read_file(hint, file, buf, left, off);
+		read = read_file(hint, file, buf,
+				 left > PAGE_CACHE_SIZE ? PAGE_CACHE_SIZE : left,
+				 off);
 
  		drop_nonexclusive_access(uf_info);
 

_

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

* Re: reiser4 OOPSes and panics when out of memory
  2006-07-17 17:38   ` Vladimir V. Saveliev
@ 2006-07-18  6:52     ` Jake Maciejewski
  2006-07-18 14:18       ` Vladimir V. Saveliev
  0 siblings, 1 reply; 8+ messages in thread
From: Jake Maciejewski @ 2006-07-18  6:52 UTC (permalink / raw)
  To: Vladimir V. Saveliev; +Cc: reiserfs-list

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

Thanks for the patch, but I can still reproduce the problem. I've been
running the attached program to try to speed up the testing process a
bit. Interrupting and restarting the compilation loop also seems to
help.

If I had hours to wait, it would probably crash eventually without
additional encouragement, but I'm doing everything as an unprivileged
user, so I don't think my tests are unreasonable.

Anyway, I'm still getting a panic with debug enabled:

reiser4 panicked cowardly: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
Kernel panic - not syncing: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:

Without debug enabled I've seen:

http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages1.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--fix.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check_after_--fix.txt.gz

but usually I get:

http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages3.txt.gz

with no corruption (although I've been rebooting before complete
failure).

On Mon, 2006-07-17 at 21:38 +0400, Vladimir V. Saveliev wrote:
> Hello
> 
> On Mon, 2006-07-17 at 18:10 +0400, Vladimir V. Saveliev wrote:
> > Hello
> > 
> > On Sun, 2006-07-16 at 12:44 -0500, maciejej@msoe.edu wrote:
> > > Has my previous post
> > > (http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
> > > overlooked, or have I not provided enough information? Do I need to
> > > reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?
> > > 
> > 
> 
> please try the attached patch.
> 
> > your test crashes reiser4 on my test box. I hope to get a patch ready
> > later today. Not sure that I got the same problem as you, though. We
> > will see. 
> > 
> > > The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
> > > reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
> > > physical memory.
> > > 
> > > 
> > 
> > 
-- 
Jake Maciejewski <maciejej@msoe.edu>

[-- Attachment #2: waste_memory.c --]
[-- Type: text/x-csrc, Size: 792 bytes --]

#include <sys/sysinfo.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

#define MB 1048576
#define DEFAULT_SAVE 0
#define DELAY 10

int main(int argc, char *argv[]) {

struct sysinfo info;
size_t waste, save;
void *ptr;

sysinfo(&info);

if(argc>1)
	save = atoi(argv[1])*MB;
else
	save = DEFAULT_SAVE*MB;

if( save >= info.freeram ) {
	fprintf(stderr, "error: only %iMB free\n", (int)info.freeram/MB);
	return ENOMEM;
	}

while(1) {
	sysinfo(&info);
	waste = (info.freeram-save)>0 ? info.freeram-save : 0;

	ptr = malloc(waste);
	if( ptr == 0 ) {
		perror("malloc() failed\n");
		return ENOMEM;
		}

	printf("reserving %iMB, wasting %iMB\n", (int)save/MB, (int)waste/MB);
	memset(ptr, 0, waste);

	sleep(DELAY);
	free(ptr);
	}

return 0;
}

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

* Re: reiser4 OOPSes and panics when out of memory
  2006-07-18  6:52     ` Jake Maciejewski
@ 2006-07-18 14:18       ` Vladimir V. Saveliev
  2006-07-19 13:28         ` Jake Maciejewski
  0 siblings, 1 reply; 8+ messages in thread
From: Vladimir V. Saveliev @ 2006-07-18 14:18 UTC (permalink / raw)
  To: Jake Maciejewski; +Cc: reiserfs-list

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

Hello

On Tue, 2006-07-18 at 00:52 -0600, Jake Maciejewski wrote:
> Thanks for the patch, but I can still reproduce the problem. I've been
> running the attached program to try to speed up the testing process a
> bit. Interrupting and restarting the compilation loop also seems to
> help.
> 

ok

> If I had hours to wait, it would probably crash eventually without
> additional encouragement, but I'm doing everything as an unprivileged
> user, so I don't think my tests are unreasonable.
> 
> Anyway, I'm still getting a panic with debug enabled:
> 
> reiser4 panicked cowardly: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> Kernel panic - not syncing: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> 

The attached patch should fix the above.

> Without debug enabled I've seen:
> 
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages1.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--fix.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check_after_--fix.txt.gz
> 
> but usually I get:
> 
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages3.txt.gz
> 
> with no corruption (although I've been rebooting before complete
> failure).
> 
> On Mon, 2006-07-17 at 21:38 +0400, Vladimir V. Saveliev wrote:
> > Hello
> > 
> > On Mon, 2006-07-17 at 18:10 +0400, Vladimir V. Saveliev wrote:
> > > Hello
> > > 
> > > On Sun, 2006-07-16 at 12:44 -0500, maciejej@msoe.edu wrote:
> > > > Has my previous post
> > > > (http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
> > > > overlooked, or have I not provided enough information? Do I need to
> > > > reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?
> > > > 
> > > 
> > 
> > please try the attached patch.
> > 
> > > your test crashes reiser4 on my test box. I hope to get a patch ready
> > > later today. Not sure that I got the same problem as you, though. We
> > > will see. 
> > > 
> > > > The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
> > > > reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
> > > > physical memory.
> > > > 
> > > > 
> > > 
> > > 

[-- Attachment #2: Type: text/x-patch, Size: 1058 bytes --]

readdir has to txn_restart, therefore, grab space for stat data update has to be forced

---
commit f1cea9c0a8db0977077d54562677514d6d736690
tree 95479706299276d7c23efd337216501b0dfd69c2
parent bbf99f71c140d7758a6223a557fa4a4d2b5c384e
author Vladimir V. Saveliev <vs@tribesman.namesys.com> Tue, 18 Jul 2006 18:13:05 +0400
committer Vladimir V. Saveliev <vs@tribesman.namesys.com> Tue, 18 Jul 2006 18:13:05 +0400

 plugin/file_ops_readdir.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/plugin/file_ops_readdir.c b/plugin/file_ops_readdir.c
index 04ada21..dfdb68d 100644
--- a/plugin/file_ops_readdir.c
+++ b/plugin/file_ops_readdir.c
@@ -629,7 +629,7 @@ int readdir_common(struct file *f /* dir
 	detach_fsdata(f);
 
 	/* try to update directory's atime */
-	if (reiser4_grab_space(inode_file_plugin(inode)->estimate.update(inode),
+	if (reiser4_grab_space_force(inode_file_plugin(inode)->estimate.update(inode),
 			       BA_CAN_COMMIT) != 0)
 		warning("", "failed to update atime on readdir: %llu",
 			get_inode_oid(inode));

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

* Re: reiser4 OOPSes and panics when out of memory
  2006-07-18 14:18       ` Vladimir V. Saveliev
@ 2006-07-19 13:28         ` Jake Maciejewski
  2006-07-19 14:07           ` Vladimir V. Saveliev
  0 siblings, 1 reply; 8+ messages in thread
From: Jake Maciejewski @ 2006-07-19 13:28 UTC (permalink / raw)
  To: Vladimir V. Saveliev; +Cc: reiserfs-list

Thanks. Now with debug enabled I've gotten:

http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/panic1.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--check.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--fix.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--check_after_--fix.txt.gz

and

http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages2.txt.gz
followed by
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages2b.txt.gz

and without debug:

http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages3.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--check.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--fix.txt.gz
http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--check_after_--fix.txt.gz

On Tue, 2006-07-18 at 18:18 +0400, Vladimir V. Saveliev wrote:
> Hello
> 
> On Tue, 2006-07-18 at 00:52 -0600, Jake Maciejewski wrote:
> > Thanks for the patch, but I can still reproduce the problem. I've been
> > running the attached program to try to speed up the testing process a
> > bit. Interrupting and restarting the compilation loop also seems to
> > help.
> > 
> 
> ok
> 
> > If I had hours to wait, it would probably crash eventually without
> > additional encouragement, but I'm doing everything as an unprivileged
> > user, so I don't think my tests are unreasonable.
> > 
> > Anyway, I'm still getting a panic with debug enabled:
> > 
> > reiser4 panicked cowardly: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> > Kernel panic - not syncing: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> > 
> 
> The attached patch should fix the above.
> 
> > Without debug enabled I've seen:
> > 
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages1.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--fix.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check_after_--fix.txt.gz
> > 
> > but usually I get:
> > 
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages3.txt.gz
> > 
> > with no corruption (although I've been rebooting before complete
> > failure).
> > 
> > On Mon, 2006-07-17 at 21:38 +0400, Vladimir V. Saveliev wrote:
> > > Hello
> > > 
> > > On Mon, 2006-07-17 at 18:10 +0400, Vladimir V. Saveliev wrote:
> > > > Hello
> > > > 
> > > > On Sun, 2006-07-16 at 12:44 -0500, maciejej@msoe.edu wrote:
> > > > > Has my previous post
> > > > > (http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
> > > > > overlooked, or have I not provided enough information? Do I need to
> > > > > reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?
> > > > > 
> > > > 
> > > 
> > > please try the attached patch.
> > > 
> > > > your test crashes reiser4 on my test box. I hope to get a patch ready
> > > > later today. Not sure that I got the same problem as you, though. We
> > > > will see. 
> > > > 
> > > > > The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
> > > > > reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
> > > > > physical memory.
> > > > > 
> > > > > 
> > > > 
> > > > 
-- 
Jake Maciejewski <maciejej@msoe.edu>


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

* Re: reiser4 OOPSes and panics when out of memory
  2006-07-19 13:28         ` Jake Maciejewski
@ 2006-07-19 14:07           ` Vladimir V. Saveliev
  2006-07-20  6:12             ` Jake Maciejewski
  0 siblings, 1 reply; 8+ messages in thread
From: Vladimir V. Saveliev @ 2006-07-19 14:07 UTC (permalink / raw)
  To: Jake Maciejewski; +Cc: reiserfs-list

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

Hello

On Wed, 2006-07-19 at 07:28 -0600, Jake Maciejewski wrote:
> Thanks. Now with debug enabled I've gotten:
> 
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/panic1.txt.gz

the attached patch fixes a problem nikita-2967 reports about. Would you
please check whther it helps.

> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--check.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--fix.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--check_after_--fix.txt.gz
> 
> and
> 
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages2.txt.gz
> followed by
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages2b.txt.gz
> 
> and without debug:
> 
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages3.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--check.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--fix.txt.gz
> http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--check_after_--fix.txt.gz
> 
> On Tue, 2006-07-18 at 18:18 +0400, Vladimir V. Saveliev wrote:
> > Hello
> > 
> > On Tue, 2006-07-18 at 00:52 -0600, Jake Maciejewski wrote:
> > > Thanks for the patch, but I can still reproduce the problem. I've been
> > > running the attached program to try to speed up the testing process a
> > > bit. Interrupting and restarting the compilation loop also seems to
> > > help.
> > > 
> > 
> > ok
> > 
> > > If I had hours to wait, it would probably crash eventually without
> > > additional encouragement, but I'm doing everything as an unprivileged
> > > user, so I don't think my tests are unreasonable.
> > > 
> > > Anyway, I'm still getting a panic with debug enabled:
> > > 
> > > reiser4 panicked cowardly: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> > > Kernel panic - not syncing: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> > > 
> > 
> > The attached patch should fix the above.
> > 
> > > Without debug enabled I've seen:
> > > 
> > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages1.txt.gz
> > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check.txt.gz
> > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--fix.txt.gz
> > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check_after_--fix.txt.gz
> > > 
> > > but usually I get:
> > > 
> > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages3.txt.gz
> > > 
> > > with no corruption (although I've been rebooting before complete
> > > failure).
> > > 
> > > On Mon, 2006-07-17 at 21:38 +0400, Vladimir V. Saveliev wrote:
> > > > Hello
> > > > 
> > > > On Mon, 2006-07-17 at 18:10 +0400, Vladimir V. Saveliev wrote:
> > > > > Hello
> > > > > 
> > > > > On Sun, 2006-07-16 at 12:44 -0500, maciejej@msoe.edu wrote:
> > > > > > Has my previous post
> > > > > > (http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
> > > > > > overlooked, or have I not provided enough information? Do I need to
> > > > > > reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?
> > > > > > 
> > > > > 
> > > > 
> > > > please try the attached patch.
> > > > 
> > > > > your test crashes reiser4 on my test box. I hope to get a patch ready
> > > > > later today. Not sure that I got the same problem as you, though. We
> > > > > will see. 
> > > > > 
> > > > > > The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
> > > > > > reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
> > > > > > physical memory.
> > > > > > 
> > > > > > 
> > > > > 
> > > > > 

[-- Attachment #2: Type: text/x-patch, Size: 825 bytes --]


diff -puN fs/reiser4/plugin/file/file.c~reiser4-add-missing-unlock fs/reiser4/plugin/file/file.c
--- linux-2.6.17-mm6/fs/reiser4/plugin/file/file.c~reiser4-add-missing-unlock	2006-07-19 18:12:14.000000000 +0400
+++ linux-2.6.17-mm6-vs/fs/reiser4/plugin/file/file.c	2006-07-19 18:13:50.000000000 +0400
@@ -1636,14 +1636,18 @@ static size_t read_file(hint_t * hint, s
 			/* error happened */
 			break;
 
-		if (coord->between != AT_UNIT)
+		if (coord->between != AT_UNIT) {
 			/* there were no items corresponding to given offset */
+			done_lh(hint->ext_coord.lh);
 			break;
+		}
 
 		loaded = coord->node;
 		result = zload(loaded);
-		if (unlikely(result))
+		if (unlikely(result)) {
+			done_lh(hint->ext_coord.lh);
 			break;
+		}
 
 		if (hint->ext_coord.valid == 0)
 			validate_extended_coord(&hint->ext_coord,

_

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

* Re: reiser4 OOPSes and panics when out of memory
  2006-07-19 14:07           ` Vladimir V. Saveliev
@ 2006-07-20  6:12             ` Jake Maciejewski
  0 siblings, 0 replies; 8+ messages in thread
From: Jake Maciejewski @ 2006-07-20  6:12 UTC (permalink / raw)
  To: Vladimir V. Saveliev; +Cc: reiserfs-list

I haven't hit nikita-2967 again, but I got several other interesting
results.

The first panic didn't cause corruption:
        reiser4 panicked cowardly: reiser4[pdflush(16048)]: scan_by_coord (fs/reiser4/flush.c:3431)[nikita-3435]:
        Kernel panic - not syncing: reiser4[pdflush(16048)]: scan_by_coord (fs/reiser4/flush.c:3431)[nikita-3435]:
        
The second affected my root partition, not the one I was stress testing:
        reiser4 panicked cowardly: reiser4[ent:hda3!(841)]: capture_anonymous_pages (fs/reiser4/plugin/file/file.c:1007)[vs-49]:
        Kernel panic - not syncing: reiser4[end:hda3!(841)]: capture_anonymous_pages (fs/reiser4/plugin/file/file.c:1007)[vs-49]:
        
I booted from a live CD to document the corruption (which seemed to have been completely fixed).
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck2_--check_hda3.txt.gz
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck2_--fix_hda3.txt.gz
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck2_--check_after_--fix_hda3.txt.gz
        
When I rebooted, I got another panic when my system tried to mount / read-write:
        reiser4 pnicked cowardly: reiser4[mount(3614)]: check_blocks_bitmap (fs/reiser4/plugin/space/bitmap.c:1268)[zam-623]:
        Kernel panic - not syncing: reiser4[mount(3614)]: check_blocks_bitmap (fs/reiser4/plugin/space/bitmap.c:1268)[zam-623]:
        
On the second reboot, it worked again.

The third panic was one I've seen before
(http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2):
        reiser4 panicked cowardly: reiser4[rm(25870)]: sibling_list_remove (fs/reiser4/tree_walk.c:813)[zam-32245]:
        Kernel panic - not syncing: reiser4[rm(25870)]: sibling_list_remove (fs/reiser4/tree_walk.c:813)[zam-32245]:
        
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck3_--check.txt.gz
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck3_--fix.txt.gz
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck3_--check_after_--fix.txt.gz
        
The fourth was another repeat:
        reiser4 panicked cowardly: reiser4[pdflush(198)]: capture_anonymous_pages (fs/reiser4/plugin/file/file.c:1007)[vs-49]:
        Kernel panic - not syncing: reiser4[pdflush(198)]: capture_anonymous_pages (fs/reiser4/plugin/file/file.c:1007)[vs-49]:
        
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck4_--check.txt.gz
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck4_--fix.txt.gz
        http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060720/fsck4_--check_after_fix.txt.gz
        
Where the fsck logs from tests 3 and 4 say entries were removed, they
mean it. Those files were GONE. I would expect this to happen to
temporary files being written during the panic, but header files should
only have been open for reading if at all. I have metadata dumps from
before and after one of the fsck --fix runs. Should I make them
available?
        
On Wed, 2006-07-19 at 18:07 +0400, Vladimir V. Saveliev wrote:
> Hello
> 
> On Wed, 2006-07-19 at 07:28 -0600, Jake Maciejewski wrote:
> > Thanks. Now with debug enabled I've gotten:
> > 
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/panic1.txt.gz
> 
> the attached patch fixes a problem nikita-2967 reports about. Would you
> please check whther it helps.
> 
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--check.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--fix.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck1_--check_after_--fix.txt.gz
> > 
> > and
> > 
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages2.txt.gz
> > followed by
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages2b.txt.gz
> > 
> > and without debug:
> > 
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/messages3.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--check.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--fix.txt.gz
> > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060719/fsck3_--check_after_--fix.txt.gz
> > 
> > On Tue, 2006-07-18 at 18:18 +0400, Vladimir V. Saveliev wrote:
> > > Hello
> > > 
> > > On Tue, 2006-07-18 at 00:52 -0600, Jake Maciejewski wrote:
> > > > Thanks for the patch, but I can still reproduce the problem. I've been
> > > > running the attached program to try to speed up the testing process a
> > > > bit. Interrupting and restarting the compilation loop also seems to
> > > > help.
> > > > 
> > > 
> > > ok
> > > 
> > > > If I had hours to wait, it would probably crash eventually without
> > > > additional encouragement, but I'm doing everything as an unprivileged
> > > > user, so I don't think my tests are unreasonable.
> > > > 
> > > > Anyway, I'm still getting a panic with debug enabled:
> > > > 
> > > > reiser4 panicked cowardly: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> > > > Kernel panic - not syncing: reiser4[find(16411)]: reiser4_dirty_inode (fs/reiser4/super_ops.c:173)[]:
> > > > 
> > > 
> > > The attached patch should fix the above.
> > > 
> > > > Without debug enabled I've seen:
> > > > 
> > > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages1.txt.gz
> > > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check.txt.gz
> > > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--fix.txt.gz
> > > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/fsck1_--check_after_--fix.txt.gz
> > > > 
> > > > but usually I get:
> > > > 
> > > > http://people.msoe.edu/~maciejej/patches/AMD64_reiser4_debug/20060718/messages3.txt.gz
> > > > 
> > > > with no corruption (although I've been rebooting before complete
> > > > failure).
> > > > 
> > > > On Mon, 2006-07-17 at 21:38 +0400, Vladimir V. Saveliev wrote:
> > > > > Hello
> > > > > 
> > > > > On Mon, 2006-07-17 at 18:10 +0400, Vladimir V. Saveliev wrote:
> > > > > > Hello
> > > > > > 
> > > > > > On Sun, 2006-07-16 at 12:44 -0500, maciejej@msoe.edu wrote:
> > > > > > > Has my previous post
> > > > > > > (http://marc.theaimsgroup.com/?l=reiserfs&m=115259665831650&w=2) been
> > > > > > > overlooked, or have I not provided enough information? Do I need to
> > > > > > > reproduce these issues on 2.6.18-rc1-mm2? Should I be trying any patches?
> > > > > > > 
> > > > > > 
> > > > > 
> > > > > please try the attached patch.
> > > > > 
> > > > > > your test crashes reiser4 on my test box. I hope to get a patch ready
> > > > > > later today. Not sure that I got the same problem as you, though. We
> > > > > > will see. 
> > > > > > 
> > > > > > > The bottom line is with 2.6.17-mm6, I've always been able to OOPs or panic
> > > > > > > reiser4 on my amd64 machine (haven't tried x86 yet) by using all available
> > > > > > > physical memory.
> > > > > > > 
> > > > > > > 
> > > > > > 
> > > > > > 
-- 
Jake Maciejewski <maciejej@msoe.edu>


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

end of thread, other threads:[~2006-07-20  6:12 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-16 17:44 reiser4 OOPSes and panics when out of memory maciejej
2006-07-17 14:10 ` Vladimir V. Saveliev
2006-07-17 17:38   ` Vladimir V. Saveliev
2006-07-18  6:52     ` Jake Maciejewski
2006-07-18 14:18       ` Vladimir V. Saveliev
2006-07-19 13:28         ` Jake Maciejewski
2006-07-19 14:07           ` Vladimir V. Saveliev
2006-07-20  6:12             ` Jake Maciejewski

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.