home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / inn-faq / part7 < prev    next >
Encoding:
Internet Message Format  |  1997-12-15  |  54.8 KB

  1. From: hwr@pilhuhn.de (Heiko W.Rupp)
  2. Newsgroups: news.software.nntp,news.software.b,news.answers
  3. Subject: INN FAQ Part 7/9: Problems with INN already running
  4. Supersedes: <faq.p7_881029525@pilhuhn.de>
  5. Followup-To: news.software.nntp
  6. Date: 9 Dec 1997 03:25:47 +0100
  7. Organization: The Home Of The Pilhuhn
  8. Lines: 1331
  9. Approved: hwr@pilhuhn.de
  10. Expires: 26 Dec 1997 02:25:25 GMT
  11. Message-ID: <faq.p7_881634325@pilhuhn.de>
  12. NNTP-Posting-Host: snert.pilhuhn.de
  13. Summary: This article is part 7 of a multi-part FAQ:
  14.     Part 7: Day-to-day operational questions.  This includes general questions asked once INN is running for a while.
  15. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!boulder!csnews!coop.net!enews.sgi.com!news.idt.net!news-peer-east.sprintlink.net!news-peer.sprintlink.net!news.sprintlink.net!Sprint!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!fu-berlin.de!news.belwue.de!news.uni-ulm.de!rz.uni-karlsruhe.de!pilhuhn.de!snert!news
  16. Xref: senator-bedfellow.mit.edu news.software.nntp:43979 news.software.b:22608 news.answers:118771
  17.  
  18. Posted-By: post_faq 2.10
  19. Archive-name: usenet/software/inn-faq/part7
  20. Last Changed: $Date: 1997/09/16 01:25:57 $ $Revision: 2.25 $
  21.  
  22.                   Part 7 of 9
  23.  
  24. INN FAQ Part 1: General and questions from people that don't (yet) run INN
  25. INN FAQ Part 2: Specific notes for specific operating systems
  26. INN FAQ Part 3: Reasons why INN isn't starting
  27. INN FAQ Part 4: The debugging tutorial (setup of feeds etc.)
  28. INN FAQ Part 5: Other error messages and what they mean
  29. INN FAQ Part 6: Day-to-day operation and changes to the system
  30. INN FAQ Part 7: Problems with INN already running
  31. INN FAQ Part 8: Appendix A: Norman's install guide
  32. INN FAQ Part 9: Appendix B: Configurations for certain systems
  33.  
  34.  
  35. ------------------------------
  36.  
  37. Subject:  Table Of Contents for Part 7/9
  38.  
  39. =====================================================================
  40.   TABLE OF CONTENTS FOR PART 7/9
  41. =====================================================================
  42.  
  43. INN IS RUNNING, BUT I HAVE THIS SMALL PROBLEM...:
  44.     7.1 XHDR says Bad Article Number
  45.     7.2 Everything I receive, I re-feed to the feeder
  46.     7.3 Suddenly my active and history files are owned by root!
  47.     7.4 How come my host name comes out twice in the Path line?
  48.     7.5 Expire had problems and won't run again after fixing the problem
  49.     7.6 Expire says "Group not matched (removed?) -- Using default ..."
  50.     7.7 Expire reports 'Can't replace history files, Cross-device link'
  51.     7.8 Why doesn't this newsfeeds entry do what I want?
  52.     7.9 Why am I forwarding cancel messages for articles in comp.foo
  53.     7.10 Debugging someone that is feeding you.
  54.     7.11 Feeds suddenly can't connect anymore!
  55.     7.12 I'm getting groups sent to me that I don't want.
  56.     7.13 When my feeder connects, I get articles but they don't take what's waiting for them.
  57.     7.14 Directories are being created with wrong permissions.
  58.     7.15 Why am I getting alt.sex.pictures even though I have...
  59.     7.16 More about the "to.*" groups
  60.     7.17 What's a decent syslog.conf configuration?
  61.     7.18 INN batcher writing "#!rnews 0" separators
  62.     7.19 Posting while throttled doesn't work
  63.     7.20 I am not getting all the articles, but my feeder is sending a full feed
  64.     7.21 overchan can't keep up.
  65.     7.22 "newgroup" control messages aren't being executed
  66.     7.23 What do these history.n.* files do?
  67.     7.24 Out of inodes but still space left on disk
  68.     7.25 Server throttled No space left on device writing article file
  69.     7.26 Is there a automatic way to update newsfeeds?
  70.     7.27 Reloading hosts.nntp is slow.
  71.     7.28 What are these "xforte" or "xindex" commands that appear in my logs?
  72.     7.29 My active is not updated frequently enough
  73.     7.30 Feedentries in newsfeeds are ignored
  74.     7.31 Help, my active file got corrupted (or deleted)!
  75.     7.32 Help, my history file is getting real big!
  76.     7.33 Help, INND gets real big
  77.     7.34 Help, my history file got deleted!
  78.     7.35 I'm seeing duplicate message-id's in my history database!
  79.     7.36 Getting lots of duplicate articles
  80.     7.37 Inn send mail to 'rmgroup' or 'newgroup'
  81.     7.38 Ctlinnd cancel doesn't cancel my articles ..
  82.     7.39 Inn hangs during renumbering the active file
  83.     7.40 Some local postings don't make it to remote, but others do
  84.     7.41 Expire does no longer work
  85.     7.42 news.daily complains about unknown entries from syslog
  86.     7.43 Innd writes to syslog: DEBUG ERROR SITEspool: trashed
  87.     7.44 My feed does have different groups in active
  88.     7.45 INN is only slowly responding
  89.     7.46 What does 'Reserved Expiring process xxx' mean?
  90.     7.47 What happens to cancels if they arrive before the article ?
  91.     7.48 I use funnel feeds and INND dumps core
  92.     7.49 NNTP-Posting-Host is localhost.do.main even if host has a name
  93.     7.50 uuxqt says: rnews exit status 1
  94.     7.51 innd get a non-zero ``nice'' value?
  95.     7.52 innd runs as root, even if configured to run as 'news'
  96.     7.53 Makehistory is slow on inn 1.x , x<5.1
  97.     7.54 Expire is slooooooow
  98.     7.55 Why are multiple innwatch's running?
  99.     7.56 I upgraded to INN 1.5.1, and peers have trouble feeding me.
  100.     7.57 I upgraded to INN 1.5.1, and it takes clients a long time to connect.
  101.     7.58 My server gets slower and is busy doing io
  102.  
  103.  
  104. =====================================================================
  105.           INN IS RUNNING, BUT I HAVE THIS SMALL PROBLEM...
  106. =====================================================================
  107.  
  108. ------------------------------
  109.  
  110. Subject: (7.1) XHDR says Bad Article Number
  111.  
  112. Q: When I do a XHDR command the INN NNTP server may give
  113. me article numbers which is not valid (get 403 Bad Article Number
  114. when requesting the article text). Is this normal?
  115.  
  116. A: Absolutely not!
  117.  
  118. Perhaps DIR_STYLE is wrong?
  119.  
  120. ------------------------------
  121.  
  122. Subject: (7.2) Everything I receive, I re-feed to the feeder
  123.  
  124. "It seems that all the articles sent to me are resent back to my
  125. provider.  I only want to post those articles which have been locally
  126. generated at my site back to my news feed provider."
  127.  
  128. or "I feed a site named foo.bar, but it puts something besides foo.bar
  129. in their Path: header"
  130.  
  131. Let's look at a typical Path: line:
  132.  
  133. Path: plts!sdl!newsgw.mentorg.com!uunet!gatech!howland.reston.ans.net!agate!barrnet.net!jfrank.com!usenet
  134.  
  135. As a post goes from system to system, each site prepends their sitename
  136. to the line.  Usually a site uses their FQDN, but sometimes they register
  137. something with the UUCP Mapping Project which makes sure no two sites use
  138. the same name.  In the above, we see a couple FQDN's and a couple sites
  139. that are registered with the UUCP Mapping Project.
  140.  
  141. INN will not feed this article to any feed who's name appears in the Path:
  142. header.
  143.  
  144. Suppose you have a feed to/from barrnet.net that looks like this:
  145.  
  146. netnews.barrnet.net:*,!control,!junk:Tf,Wnm:
  147.  
  148. This means "send all newsgroups except control and junk, but not if the
  149. Path: line includes 'netnews.barrnet.net'".  That's fine, but as we see
  150. in the above Path: example, BarrNet puts "barrnet.net" in the path,
  151. even though their netnews machine is called "netnews.barrnet.net".
  152.  
  153. Therefore, we change the newsfeeds file to include a "/barrnet.net"
  154. which means "exclude posts that have gone through barrnet.net".
  155.  
  156. netnews.barrnet.net/barrnet.net:*,!control,!junk:Tf,Wnm:
  157.  
  158. Now you won't feed to netnews.barrnet.net articles that have already
  159. gone through barrnet.
  160.  
  161. The best way to solve this problem is:
  162.     1.  Read the Path: line from an article that has passed
  163.         through that site already.
  164.     2.  Insert that sitename into the feeds description in newsfeeds.
  165.     3.  "ctlinnd reload newsfeeds fixed_feed"
  166.  
  167. OTHER USES:
  168.  
  169. Suppose two sites have very reliable NNTP feeds from uunet and psinet
  170. but still want a feed between each other to increase redundancy.  They
  171. might set up feeds like:
  172.  
  173. othersite/uunet,uupsi:...
  174.  
  175. so that they aren't sending articles that have already reached two of
  176. the biggest sites on Usenet (and therefore must have gotten good
  177. distribution already), but will pass on everything else.
  178.  
  179. ------------------------------
  180.  
  181. Subject: (7.3) Suddenly my active and history files are owned by root!
  182.  
  183. rc.news runs from root.  After that, everything else should run as
  184. news.  It sounds like you've run news.daily as root by mistake.  Make
  185. sure all your cron jobs run as news and you'll be fine.
  186.  
  187. If you have an old "cron" system, you might consider replacing yours
  188. with one of the many public domain replacements.  If you can't create
  189. a different "crontab" for each user, the idiom is:
  190.  
  191. 0 * * * * * su news -c '/do/this/as/news'
  192.  
  193. ------------------------------
  194.  
  195. Subject: (7.4) How come my host name comes out twice in the Path line?
  196.  
  197. The INN server puts its name in the Path line of every article that it
  198. receives.  Obviously, it has to do this.  The default configuration has
  199. inews put the local host in the Path header.  If nobody posts on the
  200. server and you use fully-qualified domain names on your workstations,
  201. then everything works the right way.  (If `hostname` doesn't give an
  202. FQDN on your machine, you can work-around this by setting the "domain"
  203. value in inn.conf; remember that innd never re-reads inn.conf.  You
  204. must "ctlinnd shutdown x" and then re-start the server).  Many people
  205. don't want the client machines to put their name in the Path header.
  206. To do this, set INEWS_PATH to DONT.  Finally, let me say that it is
  207. probably a mistake to have a "pathhost" line on any machine other than
  208. your server if you set INEWS_PATH to DO.  If you doubt this, please
  209. trace the article flow for yourself.  If you are curious about the
  210. effect of INEWS_PATH, read the nroff source -- not the formatted
  211. output -- of doc/inews.1
  212.  
  213. ------------------------------
  214.  
  215. Subject: (7.5) Expire had problems and won't run again after fixing the problem
  216.  
  217. When expire starts up it "reserves" the server so that nobody else can
  218. pause or throttle it.  This prevents anyone else from coming in and
  219. modifying the history database.  If expire bails out because of a bad
  220. error (e.g., your expire.ctl has syntax errors) it leaves the server
  221. reserved so that no maintenance will be done until a good expire run has
  222. occurred.  To unblock the server, use the ctlinnd "reserve" command with
  223. an empty string argument. See also #7.46.
  224.  
  225. ------------------------------
  226.  
  227. Subject: (7.6) Expire says "Group not matched (removed?) -- Using default ..."
  228.  
  229. Expire says:
  230. Group not matched (removed?) alt.techno-shamanism -- Using default expiration
  231. Group not matched (removed?) misc.computers.forsale -- Using default expiration
  232. Group not matched (removed?) de.rec.sf.startrek -- Using default expiration
  233.  
  234. YOU DID NOTHING WRONG!
  235.  
  236. That just means that you've removed those newsgroups groups and expire
  237. is slowly removing articles from the spool as they expire.  Eventually
  238. the articles will all have been deleted and so will these messages.
  239.  
  240. Here's a neat trick to make deleted groups go away at the next expire
  241. instead of hanging around waiting for their articles to expire in a
  242. timely manner.  Using this combination of lines at the *start* of
  243. expire.ctl:
  244.     *:A:0:0:0
  245.     *:U:0:7:31
  246.     *:M:0:14:365
  247. will cause groups which are neither moderated nor unmoderated to be
  248. discarded - the only such groups are deleted ones.  Thanks to
  249. Ian Phillipps <idickins@fore.com> for this tip!
  250.  
  251. ------------------------------
  252.  
  253. Subject: (7.7) Expire reports "Can't replace history files, Cross-device link"
  254.  
  255. If your directory where your history is does not have enough space left
  256. for two copies of the history, you can also expire in another directory.
  257. But you must tell expire to do so - failing to do so produces the above
  258. message. You can either tell it news.daily by adding a expdir=/some/dir
  259. flag or by adding the -d flag when starting expire. In news.daily,
  260. there is a variable called 'EXPDIR' which you can set.   This way you
  261. never accidentally run an news.daily by hand and forget the expdir option.
  262.  
  263. ------------------------------
  264.  
  265. Subject:  (7.8) Why doesn't this newsfeeds entry do what I want?
  266.             "foo.com:alt,!alt.sex"
  267.  
  268. A newsfeeds entry is not a sys file (C News) entry.  Please read
  269. newsfeeds.5.  You might also find the sys2nf program in the frontends
  270. directory useful, as well as the inncheck Perl script that is found in
  271. the samples directory.  The INN Configuration FAQ has cook-book
  272. examples of the steps required to install a NNTP feed, UUCP feed, and
  273. NNTP via nntplink feed.
  274.  
  275. ------------------------------
  276.  
  277. Subject: (7.9) Why am I forwarding cancel messages for articles in comp.foo
  278.             when I explicitly have !comp.foo in the newsfeeds entry?
  279.  
  280. Control messages can be explicitly forwarded, so a control message to
  281. comp.foo is forwarded to sites that receive either comp.foo or control.
  282. Please see the "Control Messages" section of innd.8.  As that
  283. documentation says, you probably want to put "!control" in the
  284. subscription list for most of your newsfeeds.
  285.  
  286. ------------------------------
  287.  
  288. Subject: (7.10) Debugging someone that is feeding you.
  289.  
  290. David Myers <dem@meaddata.com> suggests that if a neighbor complains
  291. that their feed to you doesn't work: (1) make sure they've read the man
  292. pages, and (2) have them send a copy of their newsfeeds file.
  293.  
  294. Truly sage advice!
  295.  
  296. ------------------------------
  297.  
  298. Subject: (7.11) Feeds suddenly can't connect anymore!
  299.  
  300. Q:  How come feeds tell me they can't connect to me any more?
  301.  
  302. A:  When innd starts up it reads the hosts.nntp file and looks up the
  303. IP addresses for all the entries mentioned there.  The problem is that
  304. this data is dynamic (sometimes people change IP addresses), and innd
  305. never goes back to check.  If your system stays up for days and one of
  306. your feeds changes their IP address (or has a new CNAME), innd will
  307. reject them.  Rich planed to handle this in INN1.5, but for now you
  308. might find it useful to do a "ctlinnd reload hosts.nntp" out of cron
  309. every day or so or when you notice there's a problem.
  310.  
  311. Here is a sample crontab entry to use: (news should run this)
  312.  
  313. 55 7,12,17,22 * * * /usr/local/newsbin/ctlinnd -s reload hosts.nntp crontab
  314.  
  315. I hope people vary the time this runs.  If a huge number of INN hosts,
  316. many running NTP so their clocks are within a few ms., all kick off DNS
  317. lookups at exactly the same time, the internet traffic could get
  318. "interesting".  Try setting the minutes value to the time you added
  319. this entry to crontab rather than everyone using "55".  In fact, if
  320. everyone used their birthday plus 1 if they are born on an odd month,
  321. that would spread it out just fine.
  322.  
  323. ------------------------------
  324.  
  325. Subject: (7.12) I'm getting groups sent to me that I don't want.
  326.  
  327. Tell the system administrator(s) of the machine(s) that feed news to
  328. you to stop sending those groups.  There is no other way to do it.  (In
  329. B or C News, the groups would end up in junk; at least with INN they
  330. are not taking up space.  You should compile with WANT_JUNK set to
  331. DONT).
  332.  
  333. If the people that feed you use B news or C news, remember that they
  334. don't use a "newsfeeds" file.  They use a file called "sys" which has a
  335. completely different format for specifying newsgroups.
  336.  
  337. ------------------------------
  338.  
  339. Subject: (7.13) When my feeder connects, I get articles but they don't take what's waiting for them.
  340.  
  341. I hate to say this, but this really shows that you haven't RTFMed very
  342. much.
  343.  
  344. News is not automatically bidirectional (it's like SMTP, not UUCP).  If
  345. you want to send things out you will have to make sure that you run
  346. send-nntp or nntpsend from cron.  nntpsend is easier and elsewhere in
  347. this document there are cookbook examples of what to add every time you
  348. set up a new feed.
  349. James Brister is thinking about adding a 'turn' command to nntp to 
  350. initiate turning sender to receiver and vice versa.
  351.  
  352. ------------------------------
  353.  
  354. Subject: (7.14) Directories are being created with wrong permissions.
  355.  
  356. > Question:
  357. >When I received news for /var/spool/news/foo/bar for the first
  358. >time, the directories got created:
  359. >
  360. ># ls -lgR foo
  361. >total 1
  362. >d-wx-w-rwx  2 news     news          512 Feb  9 00:03 bar/
  363. >
  364. >What did I do wrong?
  365. >
  366. >##  Mode that directories are created under.
  367. >#### =()<GROUPDIR_MODE          @<GROUPDIR_MODE>@>()=
  368. >GROUPDIR_MODE           2775
  369.  
  370.   Answer:
  371. You forgot a zero in front of this number, for the C compiler to interpret it
  372. as octal instead of decimal.
  373.  
  374. ------------------------------
  375.  
  376. Subject: (7.15) Why am I getting alt.sex.pictures even though I have
  377.             "ME:!alt.sex.pictures" in my newsfeeds file?
  378.  
  379. The active file is the definitive list of what newsgroups you receive.
  380. INN's ME entry is different from C News and B News; please see
  381. newsfeeds.5.  If you do not want to receive alt.sex.pictures, ask the
  382. system(s) that send you news not to send it to you.  (You would have to do
  383. that no matter what news system you are running.)
  384.  
  385. ------------------------------
  386.  
  387. Subject: (7.16) More about the "to.*" groups
  388.  
  389. (Thanks to jmalcolm@sura.net (Joseph Malcolm) for supplying
  390. these answers.)
  391.  
  392. >1) Why did my local INN act on the sendsys posted to to.neighbor?
  393.  
  394. to.* groups aren't magic to INN.  Your system received the message,
  395. it acted on it.
  396.  
  397. >2) Why did my neighbor send the cmsg to all of his neighbors?
  398.  
  399. See 3.
  400.  
  401. >3) Is is related to having the "control" group in our newsgroups patterns?
  402.  
  403. Yes.
  404.  
  405. >   The INN docs say you probably don't want to do this, but they don't say
  406. >   why.
  407.  
  408. Actually, they do. This is from innd(8):
  409.  
  410.     Sites may explicitly have the ``control'' newsgroup in their
  411.     subscription  list,  although  it is usually best to exclude
  412.     it.  If a control message is posted to a  group  whose  name
  413.     ends  with  the  four characters ``.ctl'' then the suffix is
  414.     stripped off and what is left is used  as  the  group  name.
  415.     For  example,  a cancel message posted to ``news.admin.misc.ctl''
  416.     will be sent to all sites that subscribe to  ``control''  or
  417.     ``news.admin.misc''.
  418.  
  419. There is also a pointer to this in newsfeeds(5).
  420.  
  421. >   But I still need it in my active file, right?
  422.  
  423. Yes.
  424.  
  425. ------------------------------
  426.  
  427. Subject: (7.17) What's a decent syslog.conf configuration?
  428.  
  429. The configuration will be different for each site, but here is what
  430. Greg Earle recommends as the lines for the "news.*" related part.
  431. Remember that most syslog's require tabs, not spaces.
  432.  
  433. Greg's canonical SunOS 4.1.x INN-related syslog.conf entries (which can
  434. be merged into your current configuration):
  435.  
  436. #
  437. # INN stuff
  438. #
  439. ##  Send critical messages to everyone who is logged in and to the console.
  440. news.crit               *
  441. news.crit               /dev/console
  442.  
  443. ##  Log news messages to separate files.
  444. ##  Note that each level includes all of the above it.
  445. ## =()<news.crit        @<_PATH_MOST_LOGS>@/news.crit>()=
  446. news.crit               /var/log/news/news.crit
  447. ## =()<news.err         @<_PATH_MOST_LOGS>@/news.err>()=
  448. news.err                /var/log/news/news.err
  449. ## =()<news.notice      @<_PATH_MOST_LOGS>@/news.notice>()=
  450. news.notice             /var/log/news/news.notice
  451.  
  452. If you don't want /var/log/messages to be crowded by messages from news
  453. add the following to the line, where /var/log/messages get logged:
  454. news.none so that the line reads (as an example):
  455.  
  456. *.err;kern.debug;auth.notice;mail.crit,news.none       /dev/console
  457.  
  458. On some systems you can add a flag to some entries in order to instruct 
  459. syslog not to sync after each write. This might help raising throughput.
  460. Or else move the logs from busy file systems if that flag is not
  461. available.
  462.  
  463. ------------------------------
  464.  
  465. Subject: (7.18) INN batcher writing "#!rnews 0" separators
  466.  
  467. >Outgoing UUCP batches from here are going out with "#!rnews 0" at
  468. >the head of each article.
  469.  
  470. Most common cause:  your newsfeeds entry has "Wnm" not "Wnb".
  471. (If only "Wn" is specified, the batcher gets the size itself, but this
  472. is a performance loss).
  473.  
  474. Other reasons:
  475.  
  476. batchfiles have something other than a single space between article
  477. filename and size
  478.  
  479. batchfiles lack size information (all the articles sizes will be read
  480. from the batch file as zero)
  481.  
  482. ------------------------------
  483.  
  484. Subject: (7.19) Posting while throttled doesn't work
  485.  
  486. >I want to be able to allow my users to be able to post articles when
  487. >innwatch has throttled the system when the spool disk is "full".
  488.  
  489. Cannot be done in 1.4.
  490.  
  491. In 1.5 nnrpd will spool the post for the user. When the server is
  492. running again, then running rnews -U will feed them to innd.
  493.  
  494. ------------------------------
  495.  
  496. Subject: (7.20) I am not getting all the articles, but my feeder is sending a full feed
  497.  
  498. (From Carlos Castro <carlos@mci.net>)
  499.  
  500.   Either your feeder is not keeping up with its feeders, or you are
  501. not keeping up with the news flow.  
  502.  
  503.   Disk IO is probably the biggest news bottleneck.  Usually a full feed 
  504. is more than a single Fast SCSI II disk can handle.  Having 2 or more disks 
  505. for the spool is suggested in either a striped configuration (using ODS 
  506. for Solaris or MD for Linux) or a split spool.  It is also recomended to
  507. have the disks spread out over multiple controllers.
  508.  
  509.   It is best to compile your system with MMAP if it can support it.
  510.  
  511.   Run innd at a priority of -5 or -10 and see if it performs better.
  512.  
  513.   Setting NICE_KIDS to 10 will also give innd more CPU on news servers
  514. heavily loaded with many nntplinks and nnrps.
  515.  
  516.   If you have many outgoing feeds you might want to keep the size of the
  517. out.going files relatively small....  It takes quite a bit of effort to
  518. write to the end of a very long file.
  519.  
  520. ------------------------------
  521.  
  522. Subject: (7.21) overchan can't keep up.
  523.  
  524. > About once a month or so, I get the following warning messages:
  525. > Jan 20 07:20:22 optima innd: overview!:31:proc:9193 cant flush count 14639 Operation would block
  526. > Jan 20 07:20:22 optima innd: overview! spooling 14639 bytes
  527.  
  528. or
  529.  
  530. > there's a file "overview!" in /usr/spool/news/out.going with stuff in it.
  531. > Should I be doing anything more with this than ignoring it, and maybe
  532. > occasionally deleting it (it just grows)?
  533.  
  534. This happens because innd is feeding info to overchan faster than
  535. overchan can process it.  The overflow is sent to the file
  536. "overview!".  This file can be deleted, as nnrpd will grab the missing
  537. data out of the articles "manually".  The slow-down won't be noticed,
  538. much.  You can "expireover -a" to "fill in the holes".
  539.  
  540. To prevent this in the future, you need to make overchan run faster.
  541. This is easy to do.  There are two things to do:
  542.  
  543. 1.  Increase the size of many of your kernel buffers.  In particular,
  544. increase buffers relating to directory caches (the "namei" cache", to
  545. mention one).  If you use SunOS, change "maxusers" to 200.  Ignore the
  546. variable's name.  This variable is used to calculate most of the other
  547. buffer sizes, etc. and 200 is good for a system that is as overworked
  548. as, say, a machine running netnews. Do this only if you have enough RAM.
  549. I can't exactly say what is 'enough' but for a machine with 48MB 200 seems
  550. to be too big (64 is ok here). The problem seems to be that the kernel then
  551. needs too much space and runs out of it.
  552.  
  553. 2.  (this is more important than #1) Move the .overview files out of
  554. the /var/spool/news hierarchy.  For example, moving the overview files
  555. into /var/spool/news/over.view made things fast enough on one machine
  556. that the problem went away.  To do this:  change "_PATH_OVERVIEWDIR" in
  557. "config.data", recompile, and "make install".  You will need to
  558. recompile any newsreaders that read via NFS or off the local disk.
  559.  
  560. For really great performance, put the NOV files on a separate disk.
  561. (Not just a separate partition, a separate disk or spindle.)
  562.  
  563. This one-liner will generate a shell script that will move your NOV files:
  564.     awk '{ print $1 }' /usr/lib/news/active | tr . / | awk '{ print "mkdir -p /new/location/" $1 ; print "mv " $1 "/.overview /new/location/" $1 "/.overview" }'
  565.  
  566. WHY THIS WORKS:
  567.  
  568. Why does doing all this speed up overchan?  overchan works by opening
  569. the proper ".overview" file, appending 1 line to it, then closing the
  570. file.  If you have the ".overview" file in the same directory as 10000
  571. articles then opening the ".overview" file will take a huge amount of
  572. time.  The open() call literally searches though about 5000 (half of
  573. 10000) file names to find ".overview".  If you move your ".overview"
  574. files so that each one is in it's own directory, (say,
  575. /usr/spool/news/over.view/{group}/{name}/.overview) then open() is
  576. searching through 3 files ( ".", "..", and ".overview") to find 1
  577. file.  ( O(N/2) where N=10000 vs. N=3... and you thought those first
  578. year CS classes would never be useful!)
  579.  
  580. There isn't much you can do to make the "append" and "close" steps much
  581. faster, except maybe install a PrestoServe or similar write-cache, and
  582. that won't help very much.
  583.  
  584. Profiling overchan (with PureSoft's Quantify product) found that the
  585. open() call was around 80% of the execution time of overchan.  That was
  586. reduced to 40% when I moved the ".overview" files to their own
  587. directory.  With the change, overview's profiling statistics are pretty
  588. flat. (which is good).
  589.  
  590. IF YOU CAN'T DO THE ABOVE CHANGES:
  591. Run "expireover -a" to fix the problem temporarily.  However, it will
  592. come back.
  593.  
  594. DO NOT try feeding the "overview!" file to overchan manually.
  595.     (1) overchan doesn't do any locking and you'll have two overchan's
  596.         running at once.
  597.     (2) overchan only appends to the ".overview" files.  If you've gotten
  598.         any articles since the "overview!" file was created (you will
  599.         have) then you'll be appending told old entries that are out of
  600.         order.  Your ".overview" files must be in sorted order for the
  601.         other utilities to work right.
  602.  
  603. See also #4.19, #5.33, #6.30
  604.  
  605. ------------------------------
  606.  
  607. Subject: (7.22) "newgroup" control messages aren't being executed
  608.  
  609. > "newgroup" control messages aren't be executed
  610.  
  611. The usual blame for this is _PATH_EGREP points to a grep that doesn't
  612. understand regular expressions.  For example, GNU grep only understands
  613. regular expressions if it is called "egrep" (i.e. not "gnuegrep" or
  614. "egnugrep").
  615.  
  616. Make sure you have a link or symlink between egnugrep and egrep.  You
  617. then need to modify config.data so that _PATH_EGREP is
  618. /your/local/path/egrep and NOT /your/local/path/egnuegrep.  Then
  619. recompile and "make install" to have the new binaries and shell
  620. scripts installed.
  621.  
  622. You also want to check the syntax of your control.ctl file.
  623.  
  624. ------------------------------
  625.  
  626. Subject: (7.23) What do these history.n.* files do?
  627.  
  628. Q: There are history.n, history.n.dir and history.n.pag lying around -
  629.    what are they good for?
  630.  
  631. These files come from expire and are the new history. Without errors 
  632. these files should disappear after expire is done. If they stay after
  633. expire is finished, you most certainly have a problem with disk space
  634. on the disk where history.* is or if not a broken line in history, which
  635. caused expire to bail out.
  636.  
  637. ------------------------------
  638.  
  639. Subject: (7.24) Out of inodes but still space left on disk
  640.  
  641. If you have still space on your disk but no more inodes then you should 
  642. consider rebuilding the partition on which your spool is.
  643. Default options for filesystems are mostly to use 4k / inode. For a newsfs
  644. this isn't appropriate, as articles are in average under 3k. So create
  645. your newsspool with 2k per inode. 
  646. If you rebuild you also could adjust the values for block-/fragsize 
  647. to 4096/512 so you'll get more space out of your disk than on 8192/1024
  648. (this will be a bit slower than 8k/1k for articles bigger than 4k, which 
  649. are a minority so don't use it on a partition dedicated to alt.binaries)
  650.  
  651. ------------------------------
  652.  
  653. Subject: (7.25) Server throttled No space left on device writing article file
  654.  
  655. If df still shows you plenty of space then look if you have enough
  656. inodes free. If not then refer to "Out of inodes but still space left on disk"
  657.  
  658. ------------------------------
  659.  
  660. Subject: (7.26) Is there a automatic way to update newsfeeds?
  661.  
  662. >Does anyone know of a way to automatically update the newsfeeds file?
  663. >I'm looking for something that will allow a site to send a request
  664.  
  665. We use gup at various locations with big success. You can find it in
  666. ftp://ftp.isc.org/isc/inn/unoff-contrib
  667.  
  668. One sends a mail to gup, which gets processed and a new group list for
  669. the site is written. Then from cron gupdate runs and gathers all site
  670. files to your newsfeeds.
  671.  
  672. ------------------------------
  673.  
  674. Subject: (7.27) Reloading hosts.nntp is slow.
  675.  
  676. >" but I need to reload hosts.nntp each time I add
  677. >a feed.  That takes about 15-25 minutes to happen.
  678.  
  679. Write a small script/program that parses hosts.nntp.txt and writes
  680. only IP addresses to hosts.nntp and innd will reload it nearly
  681. instantaneously.
  682.  
  683. or you can  lookup on each of the hosts before doing a ctlinnd reload.
  684. Then it should be almost instantaneous. One could write up a script for that.
  685.  
  686. Somebody has to take the time to convert FQDN's to IP addresses, but
  687. there's no requirement that it be innd.
  688.  
  689. ------------------------------
  690.  
  691. Subject: (7.28) What are these "xforte" or "xindex" commands that appear in my logs?
  692.  
  693. Q: I see "xforte" commands in syslog as unknown commands - where do they
  694. come from?
  695.  
  696. Version 0.55 of Forte Free Agent uses this to make it so a news
  697. server will not timeout even if the user is idle.  It appears to
  698. happen once per minute when the user is idle.
  699.  
  700. After Version 0.55 Forte uses the help command as the anti-idle
  701. command. So if you are just annoyed by the messages in syslog, encourage 
  702. your users to upgrade to a newer version. In versions 1.0 and 0.99+ 
  703. this feature can be turned off.
  704.  
  705. These anti-idle commands are a very bad behaviour, as the news reader does 
  706. not disconnect, but occupies resources.
  707.  
  708. Pine seems to do this behaviour via 'NOOP'.
  709.  
  710. Xindex,Xuser,spooldir and xmotd come from tin. It is documented in the 
  711. sources that these commands don't work with inn. You can disable them via
  712. -DDONT_HAVE_NNTP_EXTS (tin 1.2) -- look in the INSTALL document. In tin1.3
  713. they are disabled by default.
  714.  
  715. ------------------------------
  716.  
  717. Subject: (7.29) My active is not updated frequently enough
  718.  
  719. This is on hp9000/350 with MMAP enabled, but could surely also be used
  720. with other configurations:
  721.  
  722. >the active file does not seem to flushed to disk frequently enough.
  723. >So that when I use nn to access the newserver through nntp it does
  724. >not see the new articles posted until a few (up to 5) hours later.
  725.  
  726. First of all check the value of ICD_SYNC_COUNT in config.data.
  727.  
  728. froh@devnull.franken.de (Frohwalt Egerer) writes:
  729.  
  730.   In the source look for the place where INN would write the active file
  731. back to disk if MMAP was turned off. At that place I added a 'msync()'
  732. to the 'MMAP' branch to make it work on my university's HPs.
  733.  
  734. ------------------------------
  735.  
  736. Subject: (7.30) Feedentries in newsfeeds are ignored
  737.  
  738. > I have the following newsfeeds and INND says no feeding sites:
  739.  
  740. ## xlink/xlink.net,xlink1,xlink1.xlink.net,blackbush.xlink.net:\
  741. xlink/xlink.net,xlink1:comp.*:Tf,Wnm:
  742.  
  743. The solution is that - although the first line of the two is a 
  744. comment - the line continuation at the end still works -- so the
  745. valid entry for xlink is within the comment and therefore ignored.
  746.  
  747. ------------------------------
  748.  
  749. Subject: (7.31) Help, my active file got corrupted (or deleted)!
  750.  
  751. First off, do NOT run makeactive(8) to make a new one!  Not only does this
  752. command take a long time to run, but the result is usually garbage.  Groups
  753. that should be marked as moderated aren't, and you'll usually create lots
  754. of spurious groups which were deleted previously or didn't exist.  You'll
  755. end up spending a lot of time cleaning up your active file when you're done.
  756.  
  757. Every time news.daily runs, it saves a compressed copy of the current
  758. active file in _PATH_MOST_LOGS/OLD/ (e.g. /var/log/news/OLD).  Also,
  759. every time a newgroup or rmgroup command is issued, the previous copy
  760. of the active file is saved as "active.old".   Should your active file
  761. get corrupted or deleted, you have lots of backup copies lying around.
  762. You should also include your _PATH_NEWSLIB in your daily backups,
  763. so that your history and active files get backed up to tape.  If
  764. you get a catastrophic disk failure, you can get back in business
  765. much much faster if you have tape backups of these files.
  766.  
  767. The easiest way to recover from a corrupted active file is this:
  768. 1. Shut down INN
  769. 2. mv active active.corrupt
  770. 3. cp active.old active
  771.    OR
  772.    cp /var/log/news/OLD/active.1.Z .   (or .gz if you use gzip)
  773.    uncompress active.1                 (or gunzip if you use gzip)
  774.    mv active.1 active
  775. 4. Restart INN
  776. If INN does not do a renumber on startup (you'll know if it does if
  777. 'ctlinnd mode' hangs for several minutes on startup), then force
  778. a renumber of the active file with:
  779. 5. ctlinnd renumber ''
  780.  
  781. ------------------------------
  782.  
  783. Subject: (7.32) Help, my history file is getting real big!
  784.  
  785. It's supposed to be big.  You want it to be big.  Don't ever run
  786. makehistory to build a new database!  It will take hours or days
  787. to run.  The resulting database will be smaller, but that's because
  788. you have removed entries for expired articles, leaving yourself
  789. vulnerable to duplicates.  It's hard to estimate exactly how much
  790. you'll need, since it depends a lot on how much news you carry
  791. as well as for how long.
  792.  
  793. The partition which holds your history datebase must have at least
  794. enough room for two copies of the database, since expire(8) needs
  795. to build a new one while the old one is still in use. If you can't 
  796. afford free space on this partition for two copies, but have plenty
  797. of space elsewhere, then you might use the "-d" flag to expire.
  798.  
  799. ------------------------------
  800.  
  801. Subject: (7.33) Help, INND gets real big
  802.  
  803. Q: Innd gets real big over time - is there any way to prevent this?
  804.  
  805. This comes at least partly from the design goal to get it fast, so it
  806. trades memory vs. I/O.
  807. There are some configuration options and patches which could reduce
  808. this a bit.
  809.  
  810. If you have lots of stdin nntplinks, you should incorporate the 
  811. innd.spool.pathc which is in unoff[23] already.
  812. Then the value of DBZINCORE also changes the way INND behaves:
  813.         ##  Value of dbzincore(FLAG) call in innd.  Pick 1 or 0.
  814.         #### =()<INND_DBZINCORE         @<INND_DBZINCORE>@>()=
  815.         INND_DBZINCORE          1
  816.   Both innd and nnrpd have the option of keeping the DBZ
  817.   hash table in memory, under the control of the INND_DBZINCORE and
  818.   NNRP_DBZINCORE_DELAY parameters, respectively.
  819.   This can consume lots of RAM proportional to the size of your history
  820.   database, but it can also avoid a great deal of disk I/O.
  821.   You should probably see the DBZ manpage in the doc directory
  822.   for some (brief) additional discussion of this issue. (From Rich Salz)
  823. Matthias Urlichs <urlichs@noris.de> adds:
  824. If you still find that INND grows beyond all bounds, eg. after a week days
  825. it's twice as big than after three days, you may have a problem with your
  826. system malloc.
  827. Many malloc implementations try to coalesce free blocks, and to split big
  828. chunks into smaller ones. It can be shown that no matter what strategy you
  829. use to split and combine blocks, there's an allocation sequence which lets
  830. your used-up space grow without bounds.
  831. To fix this problem, use the malloc that comes with INND. It wastes a bit
  832. more space initially (around 25%, to be exact), but behaves a lot better --
  833. INND allocates more memory pages, but actually needs fewer to do its job. 
  834.  
  835. ------------------------------
  836.  
  837. Subject: (7.34) Help, my history file got deleted!
  838.  
  839. One way to get back in action is to restore the history
  840. file from last night's backup and run 'makehistory -bu'.  That
  841. will add back the articles that arrive since the backup to the database.
  842. You can even add the '-n' option to not throttle the server and
  843. you can do this while still accepting news, however you'll probably
  844. get some duplicate articles (which may not be all that bad given
  845. the alternative of extra downtime).
  846.  
  847. What, you don't have a backup?  Too bad.  If you still have the
  848. news articles on disk, you can do one of two things:  run makehistory
  849. to make an entirely new database, or newfs the news spool and start
  850. over.  The first option will probably take at least a day or more,
  851. the second option a few minutes.
  852.  
  853. [ One neat idea in this case would be to write a program which took
  854.   the output of findmissing.pl and into another program which read
  855.   each article (a la makehistory) and sent "ctlinnd addhist"'s.
  856.   This would be a lot faster since 'makehistory -bu' still opens
  857.   every article in the spool. ]
  858.  
  859. ------------------------------
  860.  
  861. Subject: (7.35) I'm seeing duplicate message-id's in my history database!
  862.  
  863. Something is wrong with your history database.  This is one of those
  864. things that "can never happen".  In order to verify that something
  865. is really wrong with your database, run the following command:
  866.  
  867. awk -F' ' '{ print $1 }' < history|grephistory -i
  868.  
  869. (that first thing in quotes is a tab, not a space)
  870.  
  871. This will take a while to run, but the result _should_ contain no output.
  872.  
  873. If it does output anything then the dbz database is hosed.  You'll need
  874. to rebuild the dbz files from the history file using the "-r" flag to
  875. "makehistory" using the process as described in the news-recovery(8)
  876. man page.
  877.  
  878. If you still have problems after this, then it could be due to some
  879. garbage in your history file which is causing problems with dbz.
  880. There really isn't a good tool (yet!) to fix this.  What needs to
  881. be written is a history file "sanitizer", which examines each line
  882. of the file and checks it for nulls, wacko dates, huge lines,
  883. and the like.  ( Some of this already has been integrated into expire(8)
  884. in the "1.4unoff" release, however more could be done.  At least
  885. now expire doesn't crash when it encounters garbage. )  If you
  886. do write such a program, please submit it to barr@cis.ohio-state.edu
  887. (Dave Barr)
  888.  
  889. If you do fix your database, but problems re-appear later then perhaps
  890. your O/S is at fault.  Make sure your O/S has been patched to fix any
  891. bugs related to mmap().  In your config.data try turning off -DMMAP in
  892. DBZCFLAGS and recompile.  If you still have problems, reset DBZINCORE
  893. to 0.
  894.  
  895. ------------------------------
  896.  
  897. Subject: (7.36) Getting lots of duplicate articles 
  898.  
  899. Q: I have lots ot 437 - Duplicate article  messages in my logfile -
  900. I thought nntp would prevent this? I have /remeber/ set to 14.
  901.  
  902. This usually happens when you have some heavily lagged sites 
  903. feeding you. Increase /remember/ to 15 days or start up innd
  904. with the c flag set to 13. When i had both set at 14, it appeared
  905. that most old articles arrived shorly after expire finished writing 
  906. the new history file. this is probably due to inaccurate date headers,
  907. now if everyone used NTP ..... (from: rr@eel.ufl.edu (Mahesh Ramachandran))
  908.  
  909. ------------------------------
  910.  
  911. Subject: (7.37) Inn send mail to 'rmgroup' or 'newgroup'
  912.  
  913. On some installations the newssystem sends mail to a user newgroup.
  914. This is the case if the mailer used in PATH_MAILCMD does not understand
  915. the '-s' option which is used to specify a subject on the command line.
  916. On some Linux /bin/mail seem to miss this option, as on some Sys V. 
  917. Try using /usr/ucb/Mail instead (if it exists).
  918.  
  919. ------------------------------
  920.  
  921. Subject: (7.38) Ctlinnd cancel doesn't cancel my articles ..
  922.  
  923. Q: I did cancel an article with ctlinnd cancel <message-id>, but it
  924. is still in spool
  925.  
  926. Dave Barr:
  927. Did you sufficiently quote the message-id (with ''s) so that your
  928. shell (whatever it is) doesn't interpret any metacharacters?
  929. Try using "echo '<messgage-id>'" to see if ctlinnd is getting the
  930. characters you think it is getting.
  931.  
  932. ------------------------------
  933.  
  934. Subject: (7.39) Inn hangs during renumbering the active file
  935.  
  936. Q: Is it normal for INN to hang during a renumber?
  937.  
  938. Yes. Innd doesn't accept incoming articles as they might change the
  939. contents of a directory / the number count in active while renumber
  940. tries to adjust these numbers. If it would accept these articles then you
  941. would get '400 File exists writing article file' errors, which you could get
  942. rid of by ctlinnd renumber ...
  943.  
  944. Internally, renumber is a loop the calls NGrenumber on each group in 
  945. active. NGrenumber then renumbers the group. So while Innd is in this
  946. loop it can't accept connections.
  947.  
  948. If you are worried by the long time the server does not accept
  949. connections,
  950. then do something like (from news.daily):
  951.  
  952.         while read GROUP hi lo flag ; do
  953.             ctlinnd -s renumber ${GROUP} 2>&1
  954.             sleep ${RENUMBER}
  955.         done <${ACTIVE}
  956.  
  957. This will renumber separately each group leaving the possibility to
  958. get connections while sleep()ing.
  959.  
  960. ------------------------------
  961.  
  962. Subject: (7.40) Some local postings don't make it to remote, but others do
  963.  
  964. Q: My feeds are set up and postings that come from tin make it to the
  965. remote while others e.g. from nn or netscape don't.
  966. I have the following in newsfeeds:
  967.  
  968. news:*:Tf,Wnm:news.foo.bar.com
  969.  
  970. A: nn and netscape produce the following path line:
  971.  
  972. >Path: host!news
  973.  
  974. while tin gives
  975.  
  976. >Path: host!user
  977.  
  978. Now the entry ``news'' in newsfeeds collides with the news in the
  979. Path: header. Change your newsfeeds entry to news.some.com:*:Tf... and
  980. it should work.
  981.  
  982. ------------------------------
  983.  
  984. Subject: (7.41) Expire does no longer work
  985.  
  986. Q: Expire suddenly stops with : Can't store key
  987.  
  988. There were some cancel articles posted recently that tried to cancel
  989. more than one message at a time. Dbz code doesn't like this. One
  990. solution is the following:
  991.  
  992. Grab the Perl 'fixhist' script off http://www.cis.ohio-state.edu/~barr/INN.html
  993. and follow the instructions at the top of the file.  That will clean
  994. out the cruft from your history database and allow expire to run
  995. without crashing.
  996.  
  997. ------------------------------
  998.  
  999. Subject: (7.42) news.daily complains about unknown entries from syslog
  1000.  
  1001. Q: news.daily complains:
  1002.  Syslog summary:
  1003.  Unknown entries from news log file:
  1004.  Mar 25 06:46:57 xx innd: some.do.main:9 NCmode "mode stream" received
  1005. What's wrong?
  1006.  
  1007. A: Inn1.4unoff4 now logs when a site connects that is able to send
  1008. streaming nntp. This is for debugging purposes, but the local version
  1009. of innlog has not been changed to catch up with this.
  1010. Try to use the innlog.awk that comes with unoff4.
  1011.  
  1012. ------------------------------
  1013.  
  1014. Subject: (7.43) Innd writes to syslog: DEBUG ERROR SITEspool: trashed
  1015.  
  1016. Dave Barr: This is apparently due to the innd.spool patch. As far as I
  1017. can tell the message is "mostly harmless". I have tracked it down as
  1018. far as WCHANflush() getting called with the handle of a channel (which
  1019. is a socket), except as the comment to the function says it's only
  1020. supposed to be used on file channels.
  1021.  
  1022. ------------------------------
  1023.  
  1024. Subject: (7.44) My feed does have different groups in active
  1025.  
  1026. Q: The groups in my active are not in sync with those of my feeds
  1027.  
  1028. A: Matt Midboe <matt@oscar.snsnet.net> wrote a script to get the
  1029. active in sync whith the feeds you can find it via ftp in
  1030. ftp://ftp.isc.org/isc/inn/unoff-contrib/sync-active.tar.gz
  1031.  
  1032. In v1.5 of INN there will also be actsync, actsyncd for this job.
  1033.  
  1034. ------------------------------
  1035.  
  1036. Subject: (7.45) INN is only slowly responding
  1037.  
  1038. (From: Erland Sommarskog <sommar@sophocles.algonet.se>)
  1039. Q: We started a new news server just a month ago. SS-20, lots of memory,
  1040.    23 GB of news spool. The first week it ran fast as a jaguar, but now
  1041.    it crawls like a snail. It takes forever to connect, we can't keep
  1042.    up with our feeds which have to flush our queues, it takes to forever
  1043.    to connect. When we monitor the box it spends an awful lot of time
  1044.    in kernel mode, and seems to be doing a tremendous amount of disk
  1045.    access. Where did we go wrong? If it matters, we're not running
  1046.    expire, but dexpire and histtrim.
  1047.  
  1048. A: The problem is with the history database. This database consists of
  1049.    three files: history, history.pag and history.dir. The dir files
  1050.    contains a hash table. For optimal performance, the hash file must
  1051.    not be too small, or you will get many collisions. The initial size
  1052.    of the history database is based on Usenet traffic as it was a
  1053.    couple of years ago, and no one was considering a 23 GB spool. Now,
  1054.    for people who is running expire this is not a problem, because when
  1055.    you run expire, the history file is rebuilt, and the size for the
  1056.    new database is taken from the old one. But if you are running
  1057.    dexpire and histtrim, this never happens, and innd will spend most
  1058.    of its time reading overflow buckets.
  1059.      What to do then? Rebuild the history database. And the simlpest
  1060.    way to do it, is to run expire. A simple approach is to run expire 
  1061.    every now and then, with an expire.ctl that safe won't expire very 
  1062.    many articles. (But add a short expiration time on some junk group,
  1063.    so that expire get something to work with.) 
  1064.    A better approach is to discontinue use of histtrim, and run expire 
  1065.    daily basis. Dexpires produces an output which you easily can trans-
  1066.    form into an expire.ctl. I discourage use of histtrim, since it
  1067.    may delete articles from history and yet are on the system.
  1068.  
  1069. (From: James Brister <brister@vix.com>)
  1070.     A good indicator of your performance characteristics would be how much
  1071. smaller is the number generated by this,
  1072.  
  1073.    head -1 /var/news/etc/history.dir | perl -ane 'print 2 ** $F[7], "\n";'
  1074.  
  1075. than the size of your history text file. If it's bigger you're OK. if it's
  1076. smaller, then lookups for the message ids at the tail of the history text
  1077. file (past the byte indexed by the number just generated) will be much
  1078. slower than for those at the front.
  1079.  
  1080. See also: #7.6, #7.7 and #7.41
  1081.  
  1082. ------------------------------
  1083.  
  1084. Subject: (7.46) What does 'Reserved Expiring process xxx' mean?
  1085.  
  1086. Q: While trying 'ctlinnd mode' I get this line :
  1087. Reserved Expiring process 23386
  1088.  
  1089. Any idea about what does it mean exactly and how to correct this problem?
  1090.  
  1091. A: When expire is running it reserves the server so that it can safely
  1092. pause and unpause it. This prevents other processes from grabbing the
  1093. server and rendering (some parts of) expire worthless.
  1094.  
  1095. While expire is running this is no problem. If expire is no longer running
  1096. and the server is still reserved, then you type "ctlinnd reserve ''".
  1097.  
  1098. See also #5.13, #7.5, #7.7.
  1099.  
  1100. ------------------------------
  1101.  
  1102. Subject: (7.47) What happens to cancels if they arrive before the article ?
  1103.  
  1104. Q: What happens if a cancel message arrives before the article it is
  1105. supposed to cancel?
  1106.  
  1107. A: (From Rich $alz)  
  1108. | If VERIFY_CANCELS is set to DO, then early cancel messages are ignored.
  1109. | If it is not set to DO, then early cancel messages cause a history line
  1110. | to be written for the article being cancelled.  Subsequent offers of the
  1111. | real article will be rejected.
  1112.  
  1113. ------------------------------
  1114.  
  1115. Subject: (7.48) I use funnel feeds and INND dumps core
  1116.  
  1117. When the target of a funnel feed is dropped and the funnel feed that
  1118. pipes into it is not, then innd will dump core. E.g. newsfeeds :
  1119.  
  1120. foo:*:Tm:bar
  1121. bar:!*,Tf,Wnm*:
  1122.  
  1123. If you now issue a ``ctlinnd drop bar'' then innd will soon drop core.
  1124.  
  1125. There is at the moment no fix other than dropping foo before bar in the above
  1126. example.
  1127.  
  1128. ------------------------------
  1129.  
  1130. Subject: (7.49) NNTP-Posting-Host is localhost.do.main even if host has a name
  1131.  
  1132. Q: When I post an article on the host innd is running then the header
  1133. ``NNTP-Posting-Host'' is set to localhost.do.main instead of the real
  1134. fqdn.
  1135.  
  1136. A: Local connections often go through the loopback interface so the
  1137. ip-number is the one of the localhost (127.0.0.1). In /etc/hosts (or 
  1138. if you are running bind in that config) just add the name of your
  1139. machine e.g. change from
  1140.  
  1141.       127.0.0.1   localhost
  1142.  
  1143. to
  1144.  
  1145.       127.0.0.1   machinename localhost
  1146.  
  1147. ------------------------------
  1148.  
  1149. Subject: (7.50) uuxqt says: rnews exit status 1
  1150.  
  1151. The problem is that news batches coming in via uucp get saved fine
  1152. by uucp, but rnews isn't able to process them and uuxqt either throws
  1153. them away or puts them to a .Failed directory. This seems to happen
  1154. often with newer versions of Taylor uucp.
  1155.  
  1156. Taylor uucp saves batches as owner uucp mode 600. So when rnews (as it
  1157. is installed by make is news.uucp and mode r-sr-sr-x then it gets 
  1158. user news which is not able to read the batches and exits right away.
  1159. Changing rnews to
  1160.   50 -r-sr-s---   1 uucp     news       24724 Dec 10 14:59 /bin/rnews
  1161. helped in all cases that I had this specific problem. The s-Bit on
  1162. group news assures that if rnews fails (e.g. server throttled), then
  1163. it can put the batches to in.coming/bad.
  1164.  
  1165. ------------------------------
  1166.  
  1167. Subject: (7.51) innd get a non-zero ``nice'' value?
  1168.  
  1169. Q. Why does innd end up with a non-zero ``nice'' value?
  1170.   
  1171. A. Some systems (usually BSD-based) will automatically renice a process to
  1172.    a value of 4 if the process is not a root process and if it has a nice
  1173.    value of 0 and if it has accumulated more than 10 minutes of CPU
  1174.    time. On BSD/OS systems this can be defeated by configuring a kernel
  1175.    with AUTONICETIME set to 0.
  1176.  
  1177. ------------------------------
  1178.  
  1179. Subject: (7.52) innd runs as root, even if configured to run as 'news'
  1180.  
  1181. We had a little debuging session due to inn 1.5.1 starting as root instead of
  1182. the configured value news. The problem was caused by _PATH_INNDDIR and the
  1183. following lines of inndstart.c:
  1184.   
  1185.     /* Make sure INND directory exists. */
  1186.     if (stat(INNDDIR, &Sb) < 0 || !S_ISDIR(Sb.st_mode)) {
  1187.         syslog(L_FATAL, "inndstart cant stat %s %m", INNDDIR);
  1188.         exit(1);
  1189.     }
  1190.     NewsUID = Sb.st_uid;
  1191.     NewsGID = Sb.st_gid;
  1192.  
  1193. So inndstart takes user and group values from _PATH_INNDDIR, and our
  1194. dir was owned by root =).
  1195.  
  1196. ------------------------------
  1197.  
  1198. Subject: (7.53) Makehistory is slow on inn 1.x , x<5.1
  1199.  
  1200. From: "Otto J. Makela" <otto@cc.jyu.fi>
  1201.  
  1202. There is a rather serious bug in the standard distribution inn 1.4 (and all
  1203. unoff versions, but has been fixed in inn 1.5.1) makehistory, which affects
  1204. innd performance very much. Makehistory can be used to create the history
  1205. dbz database files from the raw text file and for example dexpire does this
  1206. with every histtrim operation.
  1207.  
  1208. The problem is that makehistory is given just one parameter specifying the
  1209. size of the expected dbz database in lines, but it uses this parameter also
  1210. for the dbzfresh() tagmask parameter where the maximum key value is expected
  1211. to be given.  This means the dbz database is built with a very small hash
  1212. table causing most of the history database to be accessed without hashing,
  1213. a very serious performance hit.
  1214.  
  1215. As noted in the inn FAQ section 7.45, you can check the size of your dbz
  1216. hash table with the following commands:
  1217.         head -1 history.dir | perl -ane 'print 2 ** $F[7], "\n";'
  1218. if the number returned is smaller than your history text file, you are
  1219. being affected by this problem.
  1220.  
  1221. The problem becomes worse as the history file grows, so an indication of this
  1222. problem is that your news server worked fine at first (small history file)
  1223. but started really beating the living daylights out of the hard disk where
  1224. history is after it grew a bit larger.
  1225.  
  1226. This problem can be patched with the following extremely simple change to
  1227. makehistory, which just multiplies the number of lines in the dbzfresh call
  1228. with 70 which is (supposedly) an average number of characters per history
  1229. text file line.  This same fix has been implemented in inn 1.5.1 makehistory.
  1230. -- 
  1231. diff -u expire/makehistory.c{.orig,}
  1232. --- expire/makehistory.c.orig   Mon Jul 31 22:18:46 1995
  1233. +++ expire/makehistory.c        Wed Apr 23 11:26:50 1997
  1234. @@ -125,7 +125,8 @@
  1235.      /* Open the new database, using the old file if desired and possible. */
  1236.      (void)dbzincore(1);
  1237.      if (IgnoreOld) {
  1238. -       if (dbzfresh(p, dbzsize(size), HIS_FIELDSEP, 'C', dbztagmask(size)) < 0) {
  1239. +      /* Assume average history line length of 70 characters */
  1240. +       if (dbzfresh(p, dbzsize(size), HIS_FIELDSEP, 'C', dbztagmask(size*70)) < 0) {
  1241.             (void)fprintf(stderr, "Can't do dbzfresh, %s\n",
  1242.                     strerror(errno));
  1243.             if (temp[0])
  1244.  
  1245. ------------------------------
  1246.  
  1247. Subject: (7.54) Expire is slooooooow
  1248.  
  1249. Q: Expire takes 20 hours on my system to complete.
  1250.  
  1251. First of all you should call news.daily with the delayrm option (see
  1252. also #2.12, #4.18, #4.19, #5.13). If this is still too slow, then it 
  1253. could be that the list passed to "fastrm" is too large to be sorted by
  1254. the sort(1) command, typically because /tmp is too small. Try setting
  1255. TMPDIR in innshellvars.
  1256.  
  1257. ------------------------------
  1258.  
  1259. Subject: (7.55) Why are multiple innwatch's running?
  1260.  
  1261. From: Jim Dutton <jimd@dutton4.it.siu.edu>
  1262.  
  1263. Currently, "nobody" seems to verify whether an innwatch task is already
  1264. executing before innwatch is started up in rc.news. Also, when innd is
  1265. terminated via ctlinnd shutdown, innwatch is not affected (eg; it is
  1266. left running).
  1267.  
  1268. Since rc.news always starts an innwatch task, if innd is shutdown for
  1269. maintenance, it is necessary to remember to ALSO kill the innwatch task
  1270. and its attendant "sleeper" task, thus ensuring that there is no innwatch
  1271. running when rc.news is executed to restart innd (assuming that this is
  1272. how innd is restarted, of course).
  1273.  
  1274. ------------------------------
  1275.  
  1276. Subject: (7.56) I upgraded to INN 1.5.1, and peers have trouble feeding me.
  1277.  
  1278. INN 1.5.1 (and some versions of INN 1.4unoff) support streaming NNTP
  1279. (see #6.25).  Jerry Aguirre (who authored the streaming support)
  1280. has this to say about streaming NNTP:
  1281.  
  1282. > One of the fallouts of streaming was that a streaming feed tends to hog
  1283. > the resources.  (I consider it a feature but ...)  Basically streaming
  1284. > is more efficient so it is going to send more articles and thus consume
  1285. > greater resources.  The scheduling algorithm of INN's server aggravates
  1286. > this so that the non-streaming connections suffer.  There is code in INN
  1287. > 1.5.1 to limit the work a streaming channel will do on a single pass.
  1288. > It helps but perhaps not enough.  More advanced methods have been
  1289. > discussed but require greater changes to the code.  (Jerry Aguirre, May
  1290. > 9 1997)
  1291.  
  1292. If you upgraded to INN 1.5.1 from a version of INN which didn't support
  1293. streaming NNTP (e.g., INN 1.4sec), and have streaming support enabled,
  1294. incoming feeds which are configured to attempt streaming mode by default
  1295. will now be streaming articles to you.  The incoming feeds which are not
  1296. capable of streaming will get less and less of INN's attention
  1297. (depending on how many incoming streamers are connected at the same
  1298. time).  Thus, the incoming feeds which can't stream will see a
  1299. performance degradation, and may develop appreciable backlogs for you.
  1300.  
  1301. There are several things which can be done.  If the non-streamers switch
  1302. to an outgoing feed program which supports streaming NNTP, then they
  1303. will be able to get more of INN's attention.  Current versions of
  1304. innxmit and innfeed (see #4.21) support streaming NNTP.  Another
  1305. possibility is to disable streaming NNTP for incoming connections, which
  1306. can be done in the hosts.nntp file (see the man page for hosts.nntp for
  1307. more information).
  1308.  
  1309. A third possibility is to apply the following patch by Alan Barrett:
  1310.  
  1311.     ftp://ftp.isc.org/isc/inn/unoff-patches/inn-patch-apb-19970129
  1312.  
  1313. This patch attempts to limit the amount of work INN does for each
  1314. channel at one time.  Several sites have experienced success with it,
  1315. but at this point, it is not an official patch.
  1316.  
  1317. ------------------------------
  1318.  
  1319. Subject: (7.57) I upgraded to INN 1.5.1, and it takes clients a long
  1320. time to connect.
  1321.  
  1322. This may be caused by streaming NNTP (see #7.56).  Since INN
  1323. handles all incoming NNTP connections (even the ones which are passed
  1324. off to nnrpd), incoming streaming NNTP feeds may cause INN to take a
  1325. long time to respond to a newsreader client's initial connection.  The
  1326. solutions in Subject #7.56 should be equally effective in reducing
  1327. initial connection latency for newsreaders.
  1328.  
  1329. Or as another alternative move innd away from port 119 and accept
  1330. nnrpd connects port 119 using inetd.
  1331.  
  1332. ------------------------------
  1333.  
  1334. Subject: (7.58) My server gets slower and is busy doing io
  1335.  
  1336. Under Unix, when directories are getting too large, operations on them
  1337. are also getting slow. Most likely candidate is control or if you
  1338. have control.cancel in active control/cancel in the spool. Rebuilding
  1339. the directory from time to time helps (e.g. mv /news/control/cancel
  1340. /news/control/bye.bye && rm -fr /news/control/bye.bye). There is also
  1341. somewhere a patch floating around that divides control/cancel in
  1342. further subdirectories which makes each of those smaller.
  1343. -- 
  1344.           See <a href="http://www.netbsd.org">NetBSD</a> for a multiplatform OS
  1345. What would you call a BBS run by a mom?
  1346.    A "mother board".
  1347.