[news.software.nntp] NNTP hanging on server

tgt@cblpf.ATT.COM (Tim Thompson) (09/20/89)

We're running a variant of NNTP 1.5.6 - it's been modified to run on DKHOST,
which is the "least common denominator" within Bell Labs for network
connectivity.

We are using this variant of NNTP strictly for netnews reading at the
moment, and have encountered a fairly nasty bug. When a user finishs an
NNTP session on the client, the corresponding NNTP process on the server
sometimes remains, tying up that port from other use. Ultimately, when
enough of these zombie NNTP processes are left hanging around on the
NNTP server, no one can get in, and the NNTP processes have to be killed
off by hand, or the machine has to be rebooted.

Has anyone had any experience with this type of behaviour? It's not reliably
reproducible, and the code seems fairly straightforward in the closing
stages of the NNTP process, making it fairly hard to track down.

One thing I did notice in the 1.5.6 code which was different than the 1.5.4
code (what we baselined from to do the DKHOST changes) was in the file
server/serve.c. The 1.5.6 code reads:

	printf("%d %s closing connection.  Goodbye.\r\n",
		OK_GOODBYE, host);

	(void) fflush(stdout);

	(void) fflush(stdout);

The code from 1.5.4 simply had a single fflush(stdout). Why the double in
1.5.6? Will this serve any purpose? Could this be along the lines of
something that is leaving the process around on the NNTP server - that
is, not flushing/closing something?

Any and all comments are welcome via e-mail. Any help anyone might give
me in tracking down this problem would also be appreciated.

				Tim Thompson
				Netnews Administrator, AT&T Bell Labs
				tim.g.thompson@att.com