Linux NILFS development
 help / color / mirror / Atom feed
* cleanerd segfault
@ 2009-02-05  6:01 David Arendt
       [not found] ` <498A80B5.9080007-/LHdS3kC8BfYtjvyW6yDsg@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: David Arendt @ 2009-02-05  6:01 UTC (permalink / raw)
  To: NILFS Users mailing list

Hi,

I am using latest nilfs2 module and nilfs2 utils from today and I am
getting a segfault when trying to run cleanerd.

nilfs_cleanerd[5784]: segfault at b7f5b000 ip 0804a0db sp bff79720 error
4 in nilfs_cleanerd[8048000+5000]

Could you please look into this ?

Bye,
David Arendt

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

* Re: cleanerd segfault
       [not found] ` <498A80B5.9080007-/LHdS3kC8BfYtjvyW6yDsg@public.gmane.org>
@ 2009-02-05  6:54   ` Ryusuke Konishi
  0 siblings, 0 replies; 7+ messages in thread
From: Ryusuke Konishi @ 2009-02-05  6:54 UTC (permalink / raw)
  To: users-JrjvKiOkagjYtjvyW6yDsg, admin-/LHdS3kC8BfYtjvyW6yDsg

Hi David,
On Thu, 05 Feb 2009 07:01:25 +0100, David Arendt wrote:
> Hi,
> 
> I am using latest nilfs2 module and nilfs2 utils from today and I am
> getting a segfault when trying to run cleanerd.
>
> nilfs_cleanerd[5784]: segfault at b7f5b000 ip 0804a0db sp bff79720 error
> 4 in nilfs_cleanerd[8048000+5000]
> 
> Could you please look into this ?

Thanks for reports!

You mean git tree versions?
I'm considering to make a minor release in a few days.
If the latest version on git trees seems unstable, I'd like to fix it
before that.

Regards,
Ryusuke

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

* Re: cleanerd segfault
@ 2009-02-05  7:17 admin-/LHdS3kC8BfYtjvyW6yDsg
  0 siblings, 0 replies; 7+ messages in thread
From: admin-/LHdS3kC8BfYtjvyW6yDsg @ 2009-02-05  7:17 UTC (permalink / raw)
  To: users-JrjvKiOkagjYtjvyW6yDsg

Yes the git versions from today.I think it must have been some problem introduced the during 2 months as 2 month ago cleanerd run perfectly stable. I have this problem on different nilfs2 filesystems. I am now creating a fresh nilfs2 filesystem to check if I will have the same segfault there and report back. The kernel version is 2.6.28.3 32bit.

Thanks in advance
Bye,
David Arendt

- original message -
Subject:	Re: [NILFS users] cleanerd segfault
From:	Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org>
Date:		05/02/2009 06:54

Hi David,
On Thu, 05 Feb 2009 07:01:25 +0100, David Arendt wrote:
> Hi,
> 
> I am using latest nilfs2 module and nilfs2 utils from today and I am
> getting a segfault when trying to run cleanerd.
>
> nilfs_cleanerd[5784]: segfault at b7f5b000 ip 0804a0db sp bff79720 error
> 4 in nilfs_cleanerd[8048000+5000]
> 
> Could you please look into this ?

Thanks for reports!

You mean git tree versions?
I'm considering to make a minor release in a few days.
If the latest version on git trees seems unstable, I'd like to fix it
before that.

Regards,
Ryusuke

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

* Re: cleanerd segfault
@ 2009-02-05  7:52 admin-/LHdS3kC8BfYtjvyW6yDsg
       [not found] ` <lB4DD31fNVpx.grrKfnNr-GG6YVgmNXeLOQU1ULcgDhA@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: admin-/LHdS3kC8BfYtjvyW6yDsg @ 2009-02-05  7:52 UTC (permalink / raw)
  To: users-JrjvKiOkagjYtjvyW6yDsg

I can confirm that it is also reproducable on a newly created nilfs2 populated with some files.

- original message -
Subject:	Re: [NILFS users] cleanerd segfault
From:	Ryusuke Konishi <ryusuke-sG5X7nlA6pw@public.gmane.org>
Date:		05/02/2009 06:54

Hi David,
On Thu, 05 Feb 2009 07:01:25 +0100, David Arendt wrote:
> Hi,
> 
> I am using latest nilfs2 module and nilfs2 utils from today and I am
> getting a segfault when trying to run cleanerd.
>
> nilfs_cleanerd[5784]: segfault at b7f5b000 ip 0804a0db sp bff79720 error
> 4 in nilfs_cleanerd[8048000+5000]
> 
> Could you please look into this ?

Thanks for reports!

You mean git tree versions?
I'm considering to make a minor release in a few days.
If the latest version on git trees seems unstable, I'd like to fix it
before that.

Regards,
Ryusuke

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

* Re: cleanerd segfault
       [not found] ` <lB4DD31fNVpx.grrKfnNr-GG6YVgmNXeLOQU1ULcgDhA@public.gmane.org>
@ 2009-02-05  9:19   ` Ryusuke Konishi
       [not found]     ` <20090205.181904.55833415.ryusuke-sG5X7nlA6pw@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Ryusuke Konishi @ 2009-02-05  9:19 UTC (permalink / raw)
  To: users-JrjvKiOkagjYtjvyW6yDsg, admin-/LHdS3kC8BfYtjvyW6yDsg

On Thu,  5 Feb 2009 08:52:32 +0100, admin-/LHdS3kC8BfYtjvyW6yDsg@public.gmane.org wrote:
> I can confirm that it is also reproducable on a newly created nilfs2
> populated with some files.

All right.
Could you try the following patch against nilfs2-utils ?

This makes cleanerd which can dump backtrace to /var/log/segv_xxx.

To enable the feature, you need gdb and a 'backtrace' script
available on http://samba.org/ftp/unpacked/junkcode/segv_handler/


Regards,
Ryusuke

--
diff --git a/sbin/cleanerd/Makefile.am b/sbin/cleanerd/Makefile.am
index e6b2553..488518e 100644
--- a/sbin/cleanerd/Makefile.am
+++ b/sbin/cleanerd/Makefile.am
@@ -8,7 +8,7 @@ sbin_PROGRAMS = nilfs_cleanerd
 
 nilfs_cleanerd_SOURCES = cleanerd.c cldconfig.c vector.c \
 	cleanerd.h cldconfig.h vector.h
-nilfs_cleanerd_CFLAGS = -Wall
+nilfs_cleanerd_CFLAGS = -Wall -g
 nilfs_cleanerd_CPPFLAGS = -I$(top_srcdir)/include \
 	-DSYSCONFDIR=\"$(sysconfdir)\" -D_GNU_SOURCE
 nilfs_cleanerd_LDADD = $(top_builddir)/lib/libnilfs.la
diff --git a/sbin/cleanerd/cleanerd.c b/sbin/cleanerd/cleanerd.c
index cae22be..5f67e51 100644
--- a/sbin/cleanerd/cleanerd.c
+++ b/sbin/cleanerd/cleanerd.c
@@ -829,6 +829,46 @@ static int set_sighup_handler(void)
 	return sigaction(SIGHUP, &act, NULL);
 }
 
+/*
+ * The following part is based on segv_handler by Andrew Tridgell
+ * found at http://samba.org/ftp/unpacked/junkcode/segv_handler/
+ *
+ * To enable this feature, install gdb and 'backtrace' script available
+ * on the above site.
+ */
+static RETSIGTYPE handle_segv(int signum)
+{
+	char cmd[100];
+	char progname[100];
+	char *p;
+	int n;
+
+	n = readlink("/proc/self/exe",progname,sizeof(progname));
+	progname[n] = 0;
+
+	p = strrchr(progname, '/');
+	*p = 0;
+	
+	snprintf(cmd, sizeof(cmd),
+		 "backtrace %d > /var/log/segv_%s.%d.out 2>&1", 
+		 (int)getpid(), p+1, (int)getpid());
+	system(cmd);
+	signal(signum, SIG_DFL);
+}
+
+static int set_segv_handler(void)
+{
+	struct sigaction act;
+
+	act.sa_handler = handle_segv;
+	sigfillset(&act.sa_mask);
+	act.sa_flags = 0;
+	return sigaction(SIGSEGV, &act, NULL) || sigaction(SIGBUS, &act, NULL);
+}
+/*
+ * End of segv_handler
+ */
+
 #define timeval_to_timespec(tv, ts)		\
 do {						\
 	(ts)->tv_sec = (tv)->tv_sec;		\
@@ -859,6 +899,10 @@ static int nilfs_cleanerd_clean_loop(struct nilfs_cleanerd *cleanerd)
 		syslog(LOG_ERR, "cannot set SIGHUP signal handler: %m");
 		return -1;
 	}
+	if (set_segv_handler() < 0) {
+		syslog(LOG_ERR, "cannot set SIGSEGV signal handler: %m");
+		return -1;
+	}
 
 	nilfs_cleanerd_reload_config = 0;
 
-- 
1.5.6.5

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

* Re: cleanerd segfault
       [not found]     ` <20090205.181904.55833415.ryusuke-sG5X7nlA6pw@public.gmane.org>
@ 2009-02-07 11:38       ` Ryusuke Konishi
       [not found]         ` <20090207.203808.94866640.ryusuke-sG5X7nlA6pw@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Ryusuke Konishi @ 2009-02-07 11:38 UTC (permalink / raw)
  To: users-JrjvKiOkagjYtjvyW6yDsg, admin-/LHdS3kC8BfYtjvyW6yDsg

Hi David,
On Thu, 05 Feb 2009 18:19:04 +0900 (JST), Ryusuke Konishi wrote:
> On Thu,  5 Feb 2009 08:52:32 +0100, admin-/LHdS3kC8BfYtjvyW6yDsg@public.gmane.org wrote:
> > I can confirm that it is also reproducable on a newly created nilfs2
> > populated with some files.
> 
> All right.
> Could you try the following patch against nilfs2-utils ?
> 
> This makes cleanerd which can dump backtrace to /var/log/segv_xxx.
> 
> To enable the feature, you need gdb and a 'backtrace' script
> available on http://samba.org/ftp/unpacked/junkcode/segv_handler/
> 
> 
> Regards,
> Ryusuke

I've pushed out updates that would fix this problem.
(Both nilfs-utils and nilfs2-modules were updated).

It turned out to be a regression brought by one of the recent bug
fixes.  It was lucky that this was found before the next release.

David, thank you for your many feedbacks.

Regards,
Ryusuke Konishi

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

* Re: cleanerd segfault
       [not found]         ` <20090207.203808.94866640.ryusuke-sG5X7nlA6pw@public.gmane.org>
@ 2009-02-08 18:09           ` Ryusuke Konishi
  0 siblings, 0 replies; 7+ messages in thread
From: Ryusuke Konishi @ 2009-02-08 18:09 UTC (permalink / raw)
  To: users-JrjvKiOkagjYtjvyW6yDsg, admin-/LHdS3kC8BfYtjvyW6yDsg

On Sat, 07 Feb 2009 20:38:08 +0900 (JST), Ryusuke Konishi wrote:
> I've pushed out updates that would fix this problem.
> (Both nilfs-utils and nilfs2-modules were updated).
> 
> It turned out to be a regression brought by one of the recent bug
> fixes.  It was lucky that this was found before the next release.

Grr, I found another critical bug on a checkpoint ioctl.
It may be the cause of the GC related troubles.

Please wait trying this until the next patch will be pushed out.

Regards,
Ryusuke

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

end of thread, other threads:[~2009-02-08 18:09 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-05  6:01 cleanerd segfault David Arendt
     [not found] ` <498A80B5.9080007-/LHdS3kC8BfYtjvyW6yDsg@public.gmane.org>
2009-02-05  6:54   ` Ryusuke Konishi
  -- strict thread matches above, loose matches on Subject: below --
2009-02-05  7:17 admin-/LHdS3kC8BfYtjvyW6yDsg
2009-02-05  7:52 admin-/LHdS3kC8BfYtjvyW6yDsg
     [not found] ` <lB4DD31fNVpx.grrKfnNr-GG6YVgmNXeLOQU1ULcgDhA@public.gmane.org>
2009-02-05  9:19   ` Ryusuke Konishi
     [not found]     ` <20090205.181904.55833415.ryusuke-sG5X7nlA6pw@public.gmane.org>
2009-02-07 11:38       ` Ryusuke Konishi
     [not found]         ` <20090207.203808.94866640.ryusuke-sG5X7nlA6pw@public.gmane.org>
2009-02-08 18:09           ` Ryusuke Konishi

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