Re: [quicwg/base-drafts] Clients can send GOAWAY too (#3129)

Mike Bishop <notifications@github.com> Tue, 14 January 2020 21:07 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1E0AA120855 for <quic-issues@ietfa.amsl.com>; Tue, 14 Jan 2020 13:07:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Level:
X-Spam-Status: No, score=-8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vxqWVub7lvzm for <quic-issues@ietfa.amsl.com>; Tue, 14 Jan 2020 13:07:03 -0800 (PST)
Received: from out-1.smtp.github.com (out-1.smtp.github.com [192.30.252.192]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 50BD7120639 for <quic-issues@ietf.org>; Tue, 14 Jan 2020 13:07:03 -0800 (PST)
Date: Tue, 14 Jan 2020 13:07:02 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1579036022; bh=xg9l+rnxStOnyGP49TsA6pzpRuyol0DhKgtKWjieVc8=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=KwRPNDHq1V4G2+mlIrG8CKFk+ZPQ5G7R0CKnX+hiQ3LRG16jXobXWsmtkoDJQTgmr xzavFvh5zAXk9RQZtDjv0KYZBkQJGdivQTg0gzUvSaC27b1dVdDibalZdco4AqQ6Mx PEctd9NazI/zmQyvPfULcAK/6kKincBzOgAiKsDw=
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKYTYKIJJHVH2MRJN4V4FNP7NEVBNHHB44NAVM@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3129/review/342835509@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3129@github.com>
References: <quicwg/base-drafts/pull/3129@github.com>
Subject: Re: [quicwg/base-drafts] Clients can send GOAWAY too (#3129)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e1e2d768e454_29343fb66cacd96c2050a9"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/I4CQm8X7uoAl5UgDvS4df-xUS28>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Jan 2020 21:07:05 -0000

MikeBishop commented on this pull request.



> -stream is reset individually, or the connection terminates.  Servers MAY reject
-individual requests on streams below the indicated ID if these requests were not
-processed.
+connection and initiate a graceful connection close.  Endpoints initiate the
+graceful shutdown of a connection by sending a GOAWAY frame ({{frame-goaway}}).
+The GOAWAY frame contains an identifier that indicates to the receiver the range
+of requests or pushes that were or might be processed in this connection.  The
+server sends a client-initiated bidirectional Stream ID; the client sends a Push
+ID.  Requests or pushes with the indicated identifier or greater are rejected by
+the sender of the GOAWAY.  This identifier MAY be zero if no requests or pushes
+were processed.
+
+The information in the GOAWAY enables a client and server to agree on which
+requests or pushes were accepted prior to the connection shutdown.  Endpoints
+SHOULD abruptly terminate any requests or pushes that have identifiers greater
+than or equal to the smallest identifier sent in a GOAWAY frame.

I think the confusing piece here is that the sender of the GOAWAY is the receiver of the in-flight request/push.  This means to talk about the receipt of the request, but makes it sound like it's talking about the receiver of the GOAWAY.

I'm not sure we need to eliminate any paragraphs, but clarifying the terms would probably help a lot.  This section could previously rely on "client" and "server" to clearly imply who's doing what with requests and GOAWAY frames; now it's generalized and easy to lose track of the involved parties.

> +
+The information in the GOAWAY enables a client and server to agree on which
+requests or pushes were accepted prior to the connection shutdown.  Endpoints
+SHOULD abruptly terminate any requests or pushes that have identifiers greater
+than or equal to the smallest identifier sent in a GOAWAY frame.
+
+Endpoints MUST NOT initiate new requests or pushes on the connection with an
+identifier greater than or equal to the smallest identifier received in a GOAWAY
+frame.  Clients MAY establish a new connection to send additional requests.
+
+Some requests or pushes might already be in transit. If the endpoint has already
+sent requests or pushes with an identifier greater than or equal to that
+received in a GOAWAY frame, those requests or pushes will not be processed;
+requests MAY be retried by the client on a different connection.  The endpoint
+that initiated these requests or pushes MAY cancel them.  It is RECOMMENDED that
+the receiving endpoint explicitly reject such requests (see

```suggestion
such requests be explicitly rejected (see
```

> +The information in the GOAWAY enables a client and server to agree on which
+requests or pushes were accepted prior to the connection shutdown.  Endpoints
+SHOULD abruptly terminate any requests or pushes that have identifiers greater
+than or equal to the smallest identifier sent in a GOAWAY frame.
+
+Endpoints MUST NOT initiate new requests or pushes on the connection with an
+identifier greater than or equal to the smallest identifier received in a GOAWAY
+frame.  Clients MAY establish a new connection to send additional requests.
+
+Some requests or pushes might already be in transit. If the endpoint has already
+sent requests or pushes with an identifier greater than or equal to that
+received in a GOAWAY frame, those requests or pushes will not be processed;
+requests MAY be retried by the client on a different connection.  The endpoint
+that initiated these requests or pushes MAY cancel them.  It is RECOMMENDED that
+the receiving endpoint explicitly reject such requests (see
+{{request-cancellation}}) or pushes (see {{frame-cancel-push}}) in order to

```suggestion
{{request-cancellation}} and {{frame-cancel-push}}) upon receipt in order to
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3129#pullrequestreview-342835509