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

Kazuho Oku <> Tue, 14 January 2020 18:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E06A2120BBC for <>; Tue, 14 Jan 2020 10:52:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8
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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id IVAzV4A3eNws for <>; Tue, 14 Jan 2020 10:51:56 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id E2E23120B05 for <>; Tue, 14 Jan 2020 10:51:55 -0800 (PST)
Date: Tue, 14 Jan 2020 10:51:54 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1579027914; bh=fC+fHZFF5Rt0uPWmeD4LNcxEFBTyqFD+CORMEyZEylg=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=GUZeK5iXP37IKNnqAbMdbBypKbwjl6oFhdF8crGv9jhtdCmzoREllBQ7x1m0TbVeD NpJmsDu8S2Kqayz388OEhoAqwYOlCzjAmI8P4sLWfnB+gD4lx8dl9ORLtw9yniT8gj QsvlhAqowiqxVmoRwyTc61MeiNuucm4anpT//N08=
From: Kazuho Oku <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3129/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Clients can send GOAWAY too (#3129)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e1e0dcadeb4a_23163fe7aa6cd960167183"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 14 Jan 2020 18:52:03 -0000

kazuho 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
+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.

> This is talking about the sending endpoint, though.

That's true, and I now notice that the sentence starting from line 708 is the one that's incorrect.

The paragraph starting from line 703 talks about what to do with messages that were already in transit. It is a generalization of an exiting paragraph, that states that the sender of GOAWAY SHOULD reset, the receiver of GOAWAY MAY. I assume that we want to retain those behaviors.

The second sentence of that paragraph that talks about the receiver is correct (i.e. "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"). Next sentence that starts from 708 should then talk about the sender, but it incorrectly states: _It is RECOMMENDED that the **receiving** endpoint explicitly reject such requests._

I think it is beneficial to retain a paragraph that concentrates on handling of the HTTP messages in transit, and therefore still think that removing this paragraph (starting from line 694) is the correct thing to do, _and also fixing the "receiving" in the sentence starting from line 708 to "sending."

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: