Re: [quicwg/base-drafts] H3 GOAWAY guidance still refers to MAX_STREAM_ID (#2629)

afrind <> Wed, 17 April 2019 23:45 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9D65012024C for <>; Wed, 17 Apr 2019 16:45:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.002
X-Spam-Status: No, score=-8.002 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, RCVD_IN_MSPIKE_H2=-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 xeVupJMuuUUU for <>; Wed, 17 Apr 2019 16:45:16 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id BD7641200FC for <>; Wed, 17 Apr 2019 16:45:16 -0700 (PDT)
Date: Wed, 17 Apr 2019 16:45:15 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1555544715; bh=bA6V8CMzseobmZbK3J4TXsdikD+Sw/4VVoBzyoAgbHU=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=W11lUDWmaC3wwPwDjNUUtFNWMLda6EZn2Yr1WmIU4DQanPX3m6KfB/Y+vINbsO4+e fNL15OEcRLMcGJl1853D1xYjpfqCmQJPjajLhU/X8ixQJBF3ZdccXpRRy8mBFwnZdi eVl+//xHi8vbWPa6/IypPU6iKMRNhxxE0f8zi1II=
From: afrind <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/2629/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] H3 GOAWAY guidance still refers to MAX_STREAM_ID (#2629)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5cb7ba8b85c69_40fb3f843c2cd9682933d1"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: afrind
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: Wed, 17 Apr 2019 23:45:19 -0000

> My one question is: if a server advertises initial_max_streams_bidi TP as 1, it processes one request on stream 0 and sends GOAWAY, is it expected that the GOAWAY contains a stream_id value of 4? NB: stream 4 was never a valid client-initiated bidirectional stream.

My read is that you are supposed to send 4.  I don't think it matters that it was never a valid stream ID.

> I think there might also be an off-by-one problem. If you process a request on the last logical client-initiated bidirectional stream, what value should be sent in GOAWAY?

We discussed this some on the slack, but recording here.  If you process the last logical request on a connection (id=2^62 - 4), then you do not need to send a GOAWAY (in fact cannot, since what number would it have).  The client will automatically move to a new connection for new requests, and none of the existing requests can be retried, unless the server explicitly sends REJECTED.  Also, I strongly doubt this case will ever be hit in practice.  My back of the envelope math suggests it will take thousands of years at 1 million RPS to send this many (client initiated bidi) streams.

But the spec could probably use some text describing the edge case.

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