[NNTP] Article Numbers Becoming Invalid (RFC 3977)

Clive D.W. Feather clive at davros.org
Fri Jan 15 03:04:32 PST 2010


Firstly, my apologies for not replying to this thread for so long. I have
been reading postings, but haven't had time to sit down and think things
through.

I had misremembered some stuff and, as a result, have managed to introduce
some red herrings into this whole thread. So let's start again.

When you enter a group, the reported low and high water marks must
represent the first and last valid articles in that group. If you reissue
the GROUP command, the low water mark can increase, but it can't decrease.
The server must remember this fact and, if an article is reinstated, *not*
report it to you during this session. So:

    GROUP x.y
    211 5 100 104 x.y
    (articles 100 to 104 exist)
    (article 100 is now deleted)
    GROUP x.y
    211 4 101 104 x.y
    (article 100 is now reinstated)
    GROUP x.y
    211 4 101 104 x.y

However, if you disconnect from the server and then reconnect, it is
permitted for article 100 to reappear and the low water mark to decrease
again.

Having said that, that permission was only intended as a concession to
clustered systems which can't guarantee to keep everything in
synchronization. The intention was that there was a "master" representation
of the group that is replicated - with delay - on the various machines of
the cluster. Once the lowest numbered article in the master representation
was deleted, it couldn't be reinstated again. Reinstatement was thought to
be a rare circumstance (it requires a cancel to be cancelled, so to speak,
or expiry to be undone), so this isn't an issue. Most examples of
"reinstatment" would simply be the cluster catching up. If a very old
article genuinely gets reinstated, it can be given a new number.

This means that, unless the group is empty, the initial article number is
valid. If the group is empty, the article number is set to the special
"invalid" value.

[Russ]
> I don't believe NEXT can return 420 unless the group
> was empty when the GROUP command was issued.

[Sahahattin]
> If that's the case, then the only use for code 420 is after commands
> following entering an empty group, since it's impossible to invalidate
> the article pointer by any other means.

Those are both certainly what we meant when we wrote the wording.

-- 
Clive D.W. Feather          | If you lie to the compiler,
Email: clive at davros.org     | it will get its revenge.
Web: http://www.davros.org  |   - Henry Spencer
Mobile: +44 7973 377646


More information about the ietf-nntp mailing list