Re: NNTPC: Minor 0.87.9 problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> >    Posting is still not working properly (at least from trn, I will try
> > a few other readers). Trn hangs after sending the article (probably waiting
> > for a reply from the server); a CTL-C makes trn think it failed (the 
> > dead.article message)  but goes back into reading mode; but syslog shows
> > a successful post to our outside feed.

Weird. It works ok for me from tin and telnet:

suburbia:~$ telnet localhost 119
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200 suburbia.net NNTPcache server V0.87.9UL Jun  2 1996 ready (posting ok).
post
340 Ok
Newsgroups: suburbia.general,ausnet.support
Subject: test
From: proff <proff@suburbia.net>

test
.
240 Article posted

> >    Could someone please explain what the timeout values really mean
> > in the nntpcache.servers file? I guess that the default 12h for active

The active timeout (12h) specifies how old the active and active.times
from each server are permitted to get before a refetch. Each one of these
files for each server is given a hash signature and if the hash signature
changes after an update then the new version is written out to disk and
a collation of all files of that type (e.g active.server1 active.server2
into active) is performed.

The NewsGrp timeout operates in the same manner, but only affects the
collation of newsgroups overview.fmt. The reason for the separation
is that the newsgroups file changes very slowly over time, and even then
the changes are not really important.

Changing the active timeout to 1h (one hour) on a server will refetch
the active file every hour or everytime a client connects/disconnects
whichever is a longer. A 15k group newsfeed has a ~750k active file,
so you may not want to pull it through every hour. It depends on how
often a given user wants to see if there is new news previously read
groups, without explicitly entering them.

> >    And how exactly is an expire decided on? Will articles (assuming adequate
> > disk space) stay in the cache longer than they stay on the feeding server,
> > or are they dropped as they are dropped from the feed (ie., if the feed only
> > keeps alt.foo for one day, can I keep it in the cache for a week, and how
> > do I control how long)?
> 
> Nntpcache has no way of knowing if the master server(s) has expired any articles
> it has in cache, so yes you can keep articles longer than your server does. This

Well. You're out of date on this luke ;)

Everytime a client enters a group, a .tide file is created in the cache which
contains (among other items) the lowest article present on the master server.

All xovers (well on mod 512 boundaries anyway) and articles lower (older) than
this are removed when an expire is run. There is also a master expireyryeyy time
which nothing can be older than.

The problem with keeping xovers in the cache for articles that are expired on the
master server is that when a newsreader fetches xovers, it does it on the basis
of the results of the GROUP command, which gives the number, low and high article
statistics as per the master servers collection. If we were to work around this
then there would be a dichotomy between what is in the xovers and what is on the
master server (meaning a lot of the articles you could see, would not be there
upon reading).

There is one other method, that I'll may try and introduce. fake the output
of the GROUP command, and on a group xover readdir() the group and generate
a list of cached articles. attempt to pull out the xovers for each from the
xover cache then proceed with the xover as normal. The only problem with this
is that readdir()'s can be expensive.

A pattern matched group expirey configuration system wouldn't go astray either.

e.g

alt.fan.rms*		10s

> > All in all, I think it is becoming a great program and nearly ready for
> > commercial use. Just caching the active file is a real bandwith saver
> > since many newsreaders seem to want to always fetch it on startup even 
> > though it is several hundred k. The multiple feed feature is also nice,
> > as it allows us to merge arrogant Micro$oft's newsgroups into our real
> > newsfeed. How would it handle multiple feeds if the xrefs could overlap?

> When I first wrote in the multi-server capabilities all those months ago I set 
> myself a rule of not assuming that a group with the same name is the same group
> on all servers. ie. alt.foo from newsserver1.net is not the same group as alt.foo
> from newsserver2.net. It's not possible to ensure this everywhere (eg. article
> <message-id> commands), but it seemed like a good rule to keep to, so that people
> can do things like get most of their news from one server, except maybe one or
> two groups or a hierarchy that seems to be unreliable/censored/whatever from that
> server, then nntpcache can be directed to go somewhere else for those groups. This
> made things like the posting code more difficult, and is probably why there's still
> bugs in that bit of code.

Well. The problem here isn't posting (which we have resolved) but caching.
Two different servers may supply (same or different) articles which are
xposted to the same groups, resulting cross server, differing article
count pollution. The only way to resolve this is to treat every xpost
to the treatment nntpcache give posts when trying to locate which server
should deal with them and discard accordingly. It just means scanning the
whole pattern match group list for every xposted group in an article.

-- 
"Of all tyrannies a tyranny sincerely  exercised for the good of its victims  
 may be the most  oppressive.  It may be better to live under  robber barons  
 than  under  omnipotent  moral busybodies,  The robber baron's  cruelty may  
 sometimes sleep,  his cupidity may at some point be satiated; but those who  
 torment us for own good  will torment us  without end,  for they do so with 
 the approval of their own conscience."    -   C.S. Lewis, _God in the Dock_ 
+---------------------+--------------------+----------------------------------+
|Julian Assange RSO   | PO Box 2031 BARKER | Secret Analytic Guy Union        |
|proff@suburbia.net   | VIC 3122 AUSTRALIA | finger for PGP key hash ID =     |
|proff@gnu.ai.mit.edu | FAX +61-3-98199066 | 0619737CCC143F6DEA73E27378933690 |
+---------------------+--------------------+----------------------------------+


[Index of Archives]     [Yosemite]     [Yosemite Campsites]     [Bugtraq]     [Linux]     [Trn]

Powered by Linux