Re: [quicwg/base-drafts] Discuss HTTP/QUIC Connection Closure (#1712)

Luca Niccolini <notifications@github.com> Wed, 29 August 2018 00:44 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 50F18130E2D for <quic-issues@ietfa.amsl.com>; Tue, 28 Aug 2018 17:44:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 Mey96oIZ0keo for <quic-issues@ietfa.amsl.com>; Tue, 28 Aug 2018 17:44:10 -0700 (PDT)
Received: from out-6.smtp.github.com (out-6.smtp.github.com [192.30.252.197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5AADC130E25 for <quic-issues@ietf.org>; Tue, 28 Aug 2018 17:44:10 -0700 (PDT)
Date: Tue, 28 Aug 2018 17:44:09 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1535503449; bh=fOrlPy80zGdos7OLsuvHlxdkvcB4RixA/VVoY6Qz2jY=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=H77xI7CjxSVE3p2BJ+xoO5BtAlIZ+pBPbtl3ROFUqw7M3VGW8m+Ihx1pWYiWRbi7H MntUCh+Q7equp0wC2M5tlbii2kbeRSfgAgMRr+9pjqUdOkoJatTswtXFIOMV/LFzu2 nSxSaXMMhyg1NmPxox7qAt+yYUQfMjpvz5uXDmII=
From: Luca Niccolini <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab6a6614f6336ae62e2eff5542be8a09fe3efee87592cf00000001179dae5992a169ce1526cebb@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1712/review/150367939@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1712@github.com>
References: <quicwg/base-drafts/pull/1712@github.com>
Subject: Re: [quicwg/base-drafts] Discuss HTTP/QUIC Connection Closure (#1712)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b85ec598142a_521a3fb7608d45bc585ab"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: lnicco
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/eygWRmxx3Dg_lHDo24vdHMfnhuo>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.27
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: Wed, 29 Aug 2018 00:44:13 -0000

lnicco commented on this pull request.



> +the error code HTTP_REQUEST_CANCELLED.  Servers MAY also cancel requests on
+streams below the indicated ID if these requests were not processed.
+
+Requests on Stream IDs less than or equal to the Stream ID in the GOAWAY frame
+might have been processed; their status cannot be known until they are completed
+successfully, reset individually, or the connection terminates.
+
+Servers SHOULD send a GOAWAY frame when the closing of a connection is known
+in advance, even if the advance notice is small, so that the remote peer can
+know whether a stream has been partially processed or not.  For example, if an
+HTTP client sends a POST at the same time that a server closes a QUIC
+connection, the client cannot know if the server started to process that POST
+request if the server does not send a GOAWAY frame to indicate what streams it
+might have acted on.
+
+An endpoint MAY send multiple GOAWAY frames if circumstances change. For

I know this commit is just moving text around, but I wanted to note how the beginning of this paragraph seems to be for the most part the same as in HTTP2 and does not take into consideration that in HQ there is no error code in the GOAWAY frame. So perhaps the "sends GOAWAY without an error code" can be removed ?

In HQ the only reason I can think of for the endpoint to send multiple GOAWAY frames is to first signal the intention to drain the connection, so that the remote endpoint on receipt stops creating new streams, and then after 1RTT (or on confirmation that the GOAWAY was received) the local endpoint can actually stop accepting new streams and seal the last stream ID and send a new GOAWAY frame. The remote endpoint upon receipt can now reset streams it thinks are established but in truth are not, with HTTP_REQUEST_CANCELLED, as explained above. 

-- 
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/1712#pullrequestreview-150367939