calling gossip_enable_file() file more than once (eg. by linux
pvfs-client) can fclose() a FILE twice.
turn gossip off in the pvfs-client-core sigsegv handler before
aborting so log message will make it out (if writing to file)
diff -ur pvfs-2.6.3.orig/src/apps/kernel/linux/pvfs2-client-core.c
pvfs-2.6.3/src/apps/kernel/linux/pvfs2-client-core.c
--- pvfs-2.6.3.orig/src/apps/kernel/linux/pvfs2-client-core.c 2007-04-09
09:54:37.000000000 -0500
+++ pvfs-2.6.3/src/apps/kernel/linux/pvfs2-client-core.c 2007-10-08
16:26:54.000000000 -0500
@@ -251,6 +251,7 @@
static void client_segfault_handler(int signum)
{
gossip_err("pvfs2-client-core: caught signal %d\n", signum);
+ gossip_disable();
abort();
}
diff -ur pvfs-2.6.3.orig/src/common/gossip/gossip.c
pvfs-2.6.3/src/common/gossip/gossip.c
--- pvfs-2.6.3.orig/src/common/gossip/gossip.c 2007-04-09 09:54:37.000000000
-0500
+++ pvfs-2.6.3/src/common/gossip/gossip.c 2007-10-08 16:48:59.000000000
-0500
@@ -546,7 +546,11 @@
static int gossip_disable_file(
void)
{
- fclose(internal_log_file);
+ if (internal_log_file)
+ {
+ fclose(internal_log_file);
+ internal_log_file = NULL;
+ }
return 0;
}
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers