Error in makehistory man page
Richard Todd
rmtodd at ichotolot.servalan.com
Thu Apr 27 05:25:34 UTC 2000
A recent discussion in news.software.nntp caused me to look closely at the
man page for makehistory(8). Alas, I apparently wasn't paying attention
when the revisions of the man pages for 2.3 went by, as I didn't notice
that the description of the -u option was horribly out of date. See
below:
From: rmtodd <rmtodd at amonduul.ecn.ou.edu>
Newsgroups: news.software.nntp
Subject: Re: changing numbering in active file
Message-ID: <86vh14nmpz.fsf at amonduul.ecn.ou.edu>
rmtodd <rmtodd at amonduul.ecn.ou.edu> writes:
> abby at ucan.foad.org (Abby Franquemont) writes:
>
> > Here's what happens: I run makehistory -bu -O -f filename. Unless I've
> > missed something, that's -b, remove articles without valid message-ids,
> > -u, assume innd is running, -O, create overviews too, -f for alternate
> > filename.
>
> Okay. That should work, though nuking the old overview data before
> starting might be a good idea.
Murgle. Obviously nuking the old overview data is a bad idea if you're
running in -u mode (which causes makehistory to look only at articles that
*aren't* already in history.) Obviously I need to consume more caffeine
before posting.
In looking at the man page for makehistory, I see that part of it hasn't
been updated to correspond with the way -u actually works in 2.3, and that
if you believed what the docs said, this could explain some of your problems.
Sorry about that.
Specificially, the section on the -u flag says:
-u If the `-u'' flag is given, then makehistory
assumes that innd is running. It will throttle the
server while scanning, and then send `addhist''
commands (see ctlinnd(8)) to the server for any
article that is not found in the dbz database. The
command `makehistory -bu'' is useful after a sys-
tem crash, to delete any mangled articles and bring
the article database back into a more consistent
state.
This is, unfortunately, almost completely wrong.
1) -u does *not* throttle the server. (Note that throttling the server *isn't*
needed for makehistory to do its overview updates with -O; both tradindexed
and buffindexed overview methods do locking such that both innd and
makehistory can add records without turning the database into spam).
2) -u does not send any addhist commands. It doesn't cause makehistory to
add any records to history itself; all it does is cause makehistory to write
the history data for any "missing" articles it finds to the file you specified
with -f. Once makehistory is done, the user still needs to add the entries
to the history file. This can be done by either
a) cooking up a little shell script to 'ctlinnd addhist' them one at
a time, or
b) (recommended) throttle innd, cat the file onto the end of history,
rebuild the .dir/.pag files with makedbz, and unthrottle innd.
b) is recommended as, if there's any significant number of missing articles
to be added, you may be waiting for the addhists to finish until Hell freezes
over. The ctlinnd interface just isn't suitable for trying to cram large
amounts of information down innd's throat (see recent discussion on
inn-workers on why 'ctlinnd cancel' doesn't cut it as a way to implement
NoCeM type services).
More information about the inn-workers
mailing list