pan-users
[Top][All Lists]
Advanced

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

Re: [Pan-users] pan marking all new articles as read


From: Duncan
Subject: Re: [Pan-users] pan marking all new articles as read
Date: Tue, 5 Jan 2016 13:34:30 +0000 (UTC)
User-agent: Pan/0.140 (Chocolate Salty Balls; GIT 02eaa66)

Jim Henderson posted on Mon, 04 Jan 2016 17:19:53 +0000 as excerpted:

> On Mon, 04 Jan 2016 07:30:20 -0700, manthony-hrKqIoV4s10AvxtiuMwx3w
> wrote:
> 
>> I am using the latest version of Pan on an Ubuntu 14.04 system.  A few
>> weeks ago, it started marking all new downloads in all newsgroups as
>> "Read".  I deleted all the articles and re-loaded them, but the problem
>> persists.  Just before this problem started, there was a day when there
>> were no new articles on any newsgroups.  What do I need to learn to fix
>> this?
> 
> I've seen this on occasion, and find that resetting the newsrc-* file
> pointer for the group/groups affected resolves the issue for me.

Yes.

Technically the way it works is this:  Every message to a newsgroup has 
two different IDs, a global-scope Message-ID that's supposed to uniquely 
identify the message no matter on what server the message appears (FWIW, 
this Message-ID is identical in specification and purpose to the one 
found in email messages, as news messages inherit the email message 
definitions and are essentially the same but for a couple of headers), 
and a server-scope per-group message sequence number, as seen in the xref 
header, that increases for each message the group gets on that news 
server, but that is unique only within the context of that specific 
server for that specific group, and only as long as the server doesn't 
"reset" its message sequence number counts.

It is this second ID, the per-server per-group message sequence number 
that is in question, here.  A news client like pan can keep track of this 
number to know what messages it has already seen, and indeed, when a 
client changes groups, the news server tells it the low and high water 
marks, that is, the lowest and highest sequence numbers for which it 
currently has posts. precisely to allow a client to compare that to its 
own record of the highest number message it has seen, so the user can, if 
desired, request the messages between the highest one the client had 
previously seen, and the highest one the server now has (or all of them, 
lowest to highest, if it's the first time the user has visited the group, 
or if they haven't visited in long enough that the server has expired all 
messages that the client had previously seen).

But that all assumes the server's own idea of message sequence numbers 
never resets, and that the sequence numbers continue to increase from one 
visit to the next.

If the server itself crashes and loses its current group message sequence 
numbers, and didn't have backups with this information stored somewhere, 
then when the server admin brings it back online, its message sequence 
numbers will reset, starting at 1 for each group, once again.

What happens then when a news client connects and sees say a high water 
mark message number of 23876 for a particular group as reported by the 
server, when the client previously had seen all messages up to say 143823 
for that group, is that the client says to itself, "Oh, I've seen all 
those old messages, there's nothing new for me to download", when in 
fact, what actually happened is that the server reset its per-group 
sequence numbers and the new numbers have nothing to do with the old ones 
other than the fact that they are generally much lower, as the server  
has seen far fewer messages since the reset than it had before.

In particular, when a lot of groups at the same time suddenly have no new 
messages, when they should have many, a server message sequence number 
reset is almost always the culprit.

As it happens, pan tracks the per-server per-group message sequence 
numbers it has already seen in these newsrc files, one per configured 
server (with the servers.xml file mapping between server and 
corresponding newsrc file), with these newsrc files in turn listing each 
group, one per line, along with the message sequence numbers seen, if pan 
has visited the group.

So when a server reset like that happens, you can delete its 
corresponding newsrc file, and that should reset pan's side of things as 
well.

Alternatively, if it's for just one or a few groups (some "servers" are 
actually multiple servers behind the scenes, and will track for example 
binaries and text groups separately, so sometimes only the one set or the 
other will be reset), you can open the newsrc file in a standard text 
editor and delete the numbers for a corresponding group, manually, 
instead of deleting the whole newsrc file and thus records for all groups 
on that server, at once.

Either way, of course do this when pan isn't running, so it doesn't 
rewrite the bad numbers when you switch groups or exit.

Meanwhile, pan actually uses the message-id as the file name, in its 
message cache.  When you have multiple servers configured, that's how it 
knows a message is already in-cache from one server, if it tries to 
download the same message from another server, because it already has it 
cached by the message-ID.  Of course this works best if the cache isn't 
so small that for instance the attachment was already downloaded and 
saved, and the cached message deleted, before pan got to that message on 
the slowest server.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




reply via email to

[Prev in Thread] Current Thread [Next in Thread]