[NNTP] LISTGROUP

Mark Crispin mrc at CAC.Washington.EDU
Mon Apr 25 11:13:37 PDT 2005


On Mon, 25 Apr 2005, Clive D.W. Feather wrote:
>> The benefit is compliance with standard Internet protocol architecture.
> Meaning what? Just where is this "standard Internet protocol architecture"
> documented?

It is not MY job to do YOUR research for you.  If you can not fufill your 
responsibilities as document editor, then please resign and allow someone 
who is more responsible to take over.

Ken Murchison would be a good choice.

> "A foolish consistency is the hobgoblin of little minds." [Emerson]

I'm afraid that you are the one who is being small-minded.  Time and time 
again, your response to any criticism is "will not change" or to put your 
fingers in your ears and scream "I'M NOT LISTENING!"

> Just what benefit does compliance with this "standard" produce? Client code
> still needs to understand specific codes or simply say "it begins 4 or 5,
> it failed, tough luck".

Client response to a 4xx is different than to a 5xx; or rather it is in 
protocols that comply with the standard theory of response codes.

> This is *not* the same as mail where retrying later
> can produce different results.

Why?  Have you rigorously considered all instances in which mail returns a 
4xx code and determined that these can never apply to NNTP?

> As I said, if we were starting from scratch I would agree with you, but it
> is COMPLETELY AND UTTERLY POINTLESS trying to change things now. That would
> be *foolish* consistency.

It is not pointless to free future implementors from the burden of the 
current non-standard ad-hoc system of response codes.

>>> LISTGROUP currently says:
>>>    (the arguments on the initial response line are the same as
>>>    for the GROUP command)
>>> and
>>>    In all other aspects the LISTGROUP command behaves identically to the
>>>    GROUP command.
>>> That text will be staying.
>>
>> That does not answer the objection.  The values (not "arguments" -- yet
>> another thing that needs fixes)
> Wrong: they are "arguments"; it says so in 3.2.

The text in 3.2 is not a definition; it's just more of the same misuse of 
the word "argument".

>> on the response line are documented
>> independently in LISTGROUP and with subtly different wording.
> Where? As far as I can see, 6.1.2.1 uses the same wording as 6.1.1.1, and
> 6.1.2.2 just has the text you quote.

The text in 8.3.1.2 describes the effect of LISTGROUP.  It goes into some 
detail in describing how LISTGROUP is similar to GROUP in various aspects 
but omits such text for other aspects.  That omission must be significant; 
so, for example, the text in the third paragraph of 6.1.1.2 doesn't apply.

You could rewrite 8.3.1.2 to say something like:
    The LISTGROUP command is an extended form of the GROUP command
    (see Section 6.1.1).  As such, it behaves and responds identically
    as the GROUP command, with the following extensions:

    The first extension is that the newsgroup argument is optional; if
    it is omitted, the currently selected newsgroup is used.  A 412
    response is returned if there is no currently selected newsgroup.

    The second extension is that, on success, a list of article numbers
    is returned as a multi-line response following the 211 response
    code (see Section 6.1.1.2 for the semantics of this code).  The
    list contains one number per line in ascending numerical order, and
    lists precisely those articles that exist in the newsgroup.

The above text is shorter, more precise, and lacks the ambiguity of what 
is currently there.

This reminds me of something else.  The entire document uses two different 
words, "group" and "newsgroup".  Although the author may have intended 
these terms to be interchangable, that isn't the effect.  The document 
clearly identifies "group" and "newsgroup" as being separate concepts, and 
thus there must be a difference.

Also, "current selected newsgroup" is a grammar error; it should be 
"currently selected newsgroup".  Even when a verb 
is used as an adjectival, the modifier of that verb must still be an 
adverb.

> I disagree. But I don't see the "subtly different wording" you do.

See above.  You have pieces of 6.1.1.2 in 8.3.1.2, but not the entirety of 
6.1.1.2.  That must mean that the omitted pieces do not apply.

Either copy all of 6.1.1.2 to 8.3.1.2, or have 8.3.1.2 reference 6.1.1.2 
and do not duplicate what is in 6.1.1.2.

> "the same" covers everything, not just some aspects.

Sorry, that is not the way that people reading the specification will 
interpret it.  They, not you, will ultimately determine the meaning.

True life example: IMAP once defined a range as "all values between the 
two given values inclusive."  That was not enough; someone insisted that 
this only applied to ascending ranges, and that "all" does not apply to 
descending ranges.

>>>> There is no reason why the three zeros response should be allowed in an
>>>> NNTPv2 compliant server.
>>> There is no reason why it should not be allowed.
>> The three zeros response implies that article numbers have been reset, and
>> that the client should discard all knowledge of article numbers.
> No it does not. It indicates an empty group.

You may say that it does, but the fact that it exists as a separate 
response indicates otherwise.

> On the contrary, a three zeros response does NOT invalidate the requirement
> that:
>   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 any session, and 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.
> We deliberately decided not to provide a way for a server to reset article
> numbers and start again at 1; it's too rare an event to clutter up the
> protocol.

Yet you cluttered up the protocol with a pointless three zeros response 
for which there is no need since there are other responses which fufill 
the same requirements.

A server manager, having a need to reset article numbers (perhaps after a 
catastrophic failure), will see the three zeros response as being the 
means to indicate that, no matter what you say.

You always fall back on the same set of arguments.  On the one hand, you 
use "it would clutter up the protocol" to shoot down a remedy for a 
problem; on the other, you defend the maintenance of clutter on the ground 
that old servers (which aren't going to advertise NNTPv2) had the clutter.

If you choose to abuse your position as document editor to stymie any 
revision to the status quo, this entire working group is pointless and the 
document is a failure.

The document does not describe the deployed protocol.  It describes a 
revision to that protocol which will require considerable effort on the 
part of both client and server implementors to comply.  On the other hand, 
it does at best a half-hearted job in remedying problems in the deployed 
protocol which have repeatedly caused problems for client implementors.

Let's just abandon the whole thing.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.



More information about the ietf-nntp mailing list