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

ianswett <notifications@github.com> Wed, 12 February 2020 19:32 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 3664E120274 for <quic-issues@ietfa.amsl.com>; Wed, 12 Feb 2020 11:32:17 -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 U1zvdWzOlceC for <quic-issues@ietfa.amsl.com>; Wed, 12 Feb 2020 11:32:15 -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 150F012002F for <quic-issues@ietf.org>; Wed, 12 Feb 2020 11:32:15 -0800 (PST)
Received: from github-lowworker-a6a2749.va3-iad.github.net (github-lowworker-a6a2749.va3-iad.github.net [10.48.16.62]) by smtp.github.com (Postfix) with ESMTP id 6FC7FC6099C for <quic-issues@ietf.org>; Wed, 12 Feb 2020 11:32:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1581535933; bh=3c0wkrZiRMXg9MoKh55BHLSJLk+0+R/RII3S3yJ4ZjM=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=PtMgLgWTZnZ5MniNvdWSuEtDW0RQLtFb1YZ6MG/9tOoF4zmVjwcZAHrDjw1VBDUfu VxDQuzB23HLihwCll+W4trStt5LakCWbz+yrY3oQNbUeaqaPpsWjABzO921Egc4XjY VMLm1jyfpvdWVk0tCNc6UIFXSiOcasFOmXtdZWXM=
Date: Wed, 12 Feb 2020 11:32:13 -0800
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKZFWCQHGKQPGAYL63V4KGCT3EVBNHHB44NAVM@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/357627822@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_5e4452bd6102a_55e23f953a4cd95c4817e"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
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/YSFTBqd5fmQAtjz5dfq12W8Y_7o>
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: Wed, 12 Feb 2020 19:32:17 -0000

ianswett approved this pull request.

This seems fine, though I'm curious what the intent is if a GOAWAY is sent with the incorrect stream type?

> -the GOAWAY frame, those requests will not be processed and MAY be retried by the
-client on a different connection.  The client MAY cancel these requests.  It is
-RECOMMENDED that the server explicitly reject such requests (see
-{{request-cancellation}}) in order to clean up transport state for the affected
-streams.
-
-Requests on Stream IDs less than the Stream ID in the GOAWAY frame might have
-been processed; their status cannot be known until a response is received, the
-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

To be clear, this means if I don't want to accept more requests, I can just increment the largest request's stream ID by 1 and send it, as it seems like there is no requirement to send the correct type of stream ID?  If so, you could remove this sentence and not imply that one is supposed to send the correct type.

>  
 ~~~~~~~~~~  drawing
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                          Stream ID (i)                      ...
+|                  Stream ID/Push ID (i)                      ...

Sometimes using one ID space and sometimes using the other still seems odd to me, but it's where we're at.

-- 
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-357627822