[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