[NNTP] Article Reinstatement
Julien ÉLIE
julien at trigofacile.com
Sat May 14 12:37:52 PDT 2011
Hi Sabahattin,
>> The low watermark can not decrease.
>
> Even when the client disconnects?
Yes, the low water mark SHOULD NOT decrease.
Section 6.1.1.2:
Except when the group is empty and all three numbers are zero,
whenever a subsequent GROUP command for the same newsgroup is issued,
either by the same client or a different client, the reported low
water mark in the response MUST be no less than that in any previous
response for that newsgroup in this session, and it SHOULD be no less
than that in any previous response for that newsgroup ever sent to
any client. Any failure to meet the latter condition SHOULD be
transient only. The client may make use of the low water mark to
remove all remembered information about articles with lower numbers,
as these will never recur.
>> It is not an RFC-compliant behaviour. min could not have been set
>> to 2.
>
> So what does a server do when the lowest-numbered article is pending
> reinstatement and the client requests it?
The news server just answers the article does not exist:
First form (message-id specified)
430 No article with that message-id
Second form (article number specified)
423 No article with that number
Third form (current article number used)
423 No article with that number
Note that reinstatement can be done on other articles than the
lowest-numbered article.
>> RFC 3977, Section 6.1.1.2:
>>
>> o Articles may be reinstated in the group with the same article
>> number, but those articles MUST have numbers no less than the
>> reported low water mark (note that this is a reinstatement of the
>> previous article, not a new article reusing the number).
>
> This does make sense, but doesn't apply to the high watermark.
The high water mark can decrease.
It can happen with cancels for instance. Note that such a behaviour is
implementation-specific. A news server can keep the high water mark
without decreasing it.
>> [...] No similar assumption can be made about the high water mark,
>> as this can decrease if an article is removed and then increase
>> again if it is reinstated or if new articles arrive.
>
> Looking back at my original message, I see that I made an assumption
> that the high and low watermarks were always valid articles, but I
> can see now that the RFC has us covered in the special case of
> reinstatement. Good. :-)
And also the fact that articles can expire and no longer be present in
the news spool. The low water mark does not necessarily point to a
still retrievable article at the time an ARTICLE command is sent.
>> news.test has 5 messages, min=1 max=5 count=5 1. remove #1 min=1
>> max=5 count=4 2. reinstate #1 and remove #3 min=1 max=5 count=4
>
> By which we understand that an invalid article response will result
> from requesting a removed article, yes?
Not "invalid", but "inexistent".
>> So a client that comes between action 1 and action 2 will never see
>> #1; it won't ask for #1 afterwards because the high water mark is
>> 5. The same way as a client coming after action 2 will never see
>> #3. But is it really a problem?
>
> Taking into account the use of article reinstatement, probably not in
> many cases, but you can imagine that if you are a news puller or
> offline reader, you want to go forward in the article stream and not
> worry about what came before. Any circumstance that results in
> article deletion should be permanent, from the client's perspective.
> But yes, it's just me, picking nits. :-)
It is up to the client to decide how to implement its retrieval of
articles. If it assumes the article stream always go forward (which
happens nearly all the time), then it will miss reinstatements. That's
all. The client just prefers rapidity to exhaustivity (sending a
LISTGROUP every time, or every n times, it connects to a news group).
--
Julien ÉLIE
« Pour une personne optimiste, le verre est à moitié plein. Pour une
personne pessimiste, il est à moitié vide. Pour l'informaticien, il
est deux fois plus grand que nécessaire. »
More information about the ietf-nntp
mailing list