ietf-nntp Requirement for timeout close unclear

Russ Allbery rra at stanford.edu
Sun Jul 8 02:51:16 PDT 2001


Clive D W Feather <clive at demon.net> writes:

> The present wording says that the server
> - may timeout waiting for the client
> - must not timeout in less than N seconds
> Both might be reasonable limitations to put on a client.

I don't understand why either would be meaningful for a client.  If the
client times out, it closes the connection, an event that the server
already has to be able to deal with at any point.  The difference between
the server and the client is that the client is initiating the protocol
conversation and is the party permitted to terminate it at any time
already, so there's no way to distinguish between a timeout and any other
normal protocol event.

>> I think that Andrew's right and that the best thing to do is to simply
>> drop the connection without sending anything at all.

> Possibly. On the other hand, finding a "404 you took too long" in the
> incoming stream might help in debugging problems.

Not worth the complexity of out-of-order responses, though, I think.

Okay, after reading the various comments, I think I can now propose
replacement text.  I propose we replace the last paragraph of section four
of the current draft with:

    An NNTP server MAY have an inactivity autologout timer.  Such a timer
    SHOULD be of at least three minutes duration, with the exception that
    there MAY be a shorter limit on how long the server is willing to wait
    for the first command from the client.  The receipt of any command
    from the client during the timer interval SHOULD suffice to reset the
    autologout timer.  When the timer expires, the server SHOULD close the
    TCP connection without sending any response to the client, including
    when the client is in the middle of sending a multiline message to
    the server (such as during a POST or IHAVE command).

This has the following changes from the current version:

 - The minimum duration is a SHOULD rather than a MUST; I think this is
   more correct per RFC 2119 and in general makes more sense.  There's
   nothing particularly special about three minutes to warrant a MUST.

 - This adds an exception for the initial timer, to follow existing
   practice in INN and the previous comments from Andrew Gierth on this
   section.

 - POST and IHAVE are mentioned explicitly and handled the same as any
   other timeout, which keeps things simple and should already do the
   correct thing with existing implementations.

Does this sound okay to everyone?

I believe we should also include my previous recommendations for new
wording for the POST and IHAVE command descriptions.

Stan, I'm keeping track of all of the new text I've suggested.  Any
feedback on what suggestions look good and what suggestions need more work
would be greatly appreciated.  I'll keep track of everything until I see a
new draft and then come back to the ones that aren't included.

-- 
Russ Allbery (rra at stanford.edu)             <http://www.eyrie.org/~eagle/>



More information about the ietf-nntp mailing list