[net.news.b] readnews upper bound reached in net.unix-wizards and net.micro

mark@cbosgd.UUCP (05/29/84)

If you've been seeing some strange behaviour out of readnews lately
in net.unix-wizards and net.micro, here's why.

There is a bitmap kept in readnews of what articles in the current
newsgroup you have read.  The bitmap is 1024 bytes, room enough for
8192 bits.  I remember 3 years ago discussing this with Matt Glickman,
and we both thought that 8192 was forever, and that sites would reset
their article numbers long before then.

Well, if your host has been on Usenet for a long time, chances are you
have received over 8192 articles in net.unix-wizards and are nearing 8192
in net.micro.  When you pass this magic number, the typical symptom is
that the articles won't go away, they keep reappearing.  Of course, other
things might happen, depending on your hardware and version of UNIX, it
might dump core, refuse to show you anything more, etc.

There are two solutions.  One is to reset your article count.  This is ugly
but not really very hard - you edit /usr/lib/news/active changing the count
on the newsgroups to 00000.  Then either edit everybody's .newsrc to delete
the lines for those newsgroups, or post a message to "general" telling your
users to do so.  This can cause various bad things to happen - people will
not understand your directions, they will miss some news, etc.  It's up to
you to decide whether this is a problem.

The other solution is to raise the limit.  There are two places in the code
to change:
	rextern.c:	bitmap[1024]
			change to 2048
	rfuncs.c:	next = 8193;
			change to 16385
The penalty for raising the bound isn't very great - readnews will be 1K
bigger.  However, there will be an increased search time to do things like
clear out the array, hunt for unread articles, etc.  You could make it even
bigger if you like, I am not sure if any short variables will cause troubles
with article numbers over 32767 on 32 bit machines, but it will almost
certainly cause trouble to go higher than that on a 16 bit machine.

	Mark