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