[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [leafnode-list] RELIABILITY ANNOUNCEMENT: leafnode 2.0b*



"john burton" <jburton@xxxxxxxxxxxxxxxxx> writes:

> For those of us running v2.0b8 should we retrofit, or will there be a 'fix'
> out shortly?

I'd suggest that you watch your system's number of processes, open files
and disk space. Tell your leafnode users to keep copies of the postings
they send off to be able to recover.

OTOH, you may not want to trade local groups for a chance. Decide on
your own, see below.

A band-aid fix is attached, I cannot currently test it, it will however
lock the actual post until a fetchnews/texpire are done with their work,
so tell your users to be patient. An elaborate fix will take more time.

Here's the MD5SUM:
5644783cbd5643eee8872ddfa16c04d5  fix-2.0b8-post.patch


How to apply: 
unpack leafnode 2.0b8
cd to its directory
run: patch -p0 </where/you/saved/fix-2.0b8-post.patch

A copy of that fix-2.0b8-post.patch is available on
http://mandree.home.pages.de/leafnode/testing/

> Frankly, I've not noticed the problem here, but of course, that doesn't mean
> it hasn't happened....

It will not bite you as long as your system ALWAYS has plenty of
resources of any kind (file descriptors, processes, disk space), it may
bite on loaded boxes, and the slightest chance that it may eat someone's
postings justifies an early notification and of course a bug fix later
on.

-- 
Matthias Andree


Index: nntpd.c
===================================================================
RCS file: /home/emma/mycvsroot/leafnode/nntpd.c,v
retrieving revision 1.1.1.5
diff -w -u -r1.1.1.5 nntpd.c
--- nntpd.c	2001/01/15 12:05:15	1.1.1.5
+++ nntpd.c	2001/03/24 22:31:00
@@ -1233,17 +1233,7 @@
 	mid = fgetheader( f, "Message-ID:" );
 	groups = fgetheader( f, "Newsgroups:" );
 	fclose( f );
-	switch ( fork() ) {
-	case -1: {
-	    syslog( LOG_ERR, "fork: %m" );
-	    nntpprintf( "503 Could not store article in newsgroups" );
-	    unlink( outname );
-	    break;
-	}
-	case 0: {
-	    fclose(stdin);
-	    fclose(stdout);
-	    fclose(stderr);
+
 	    if ( lockfile_exists( TRUE, TRUE ) ) {
 		/* Something is really wrong. Move the article 
 		   to failed.postings */
@@ -1270,14 +1260,7 @@
 					 * delposted() will do the job
 					 */
 	    }
-	    _exit( 0 );
-	}
-	default: {
 	    nntpprintf( "240 Article posted, now be patient" );
-	    break;
-	}
-	
-	} /* switch ( fork() ) */ 
 	
 	return;
     }