Re: [quicwg/base-drafts] Allow not creating QPACK codec streams (#2529)

Lucas Pardue <> Wed, 20 March 2019 23:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 930871277E5 for <>; Wed, 20 Mar 2019 16:20:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.001
X-Spam-Status: No, score=-3.001 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_NONE=-0.0001, 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 K5iANWmpTbqc for <>; Wed, 20 Mar 2019 16:20:57 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B351C12D4E6 for <>; Wed, 20 Mar 2019 16:20:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=mwbvDpIVTCYcCY4DQ0j/dTJCOSs=; b=eW+umtQp7n3svHv/ /kJkGUgsmYLIuUW4OY0ubGP1aJAFBgXZTCPKVQh7WDjzJKrg3/0sayb+wXdAvRfR FLOo2Hd+BQfg9ligOanJUofYtpox1fmKHQfyiXEGu9K84/eaCciMB0J0MngsVlXY zBTiU7itw37aVUrNTtGInTzRj28=
Received: by with SMTP id filter1007p1las1-31068-5C92CAD6-27 2019-03-20 23:20:54.793163796 +0000 UTC m=+442176.588766067
Received: from (unknown []) by (SG) with ESMTP id ER73cnJ9T8a72AeX4F3zvQ for <>; Wed, 20 Mar 2019 23:20:54.754 +0000 (UTC)
Received: from (localhost []) by (Postfix) with ESMTP id A83BC2A071A for <>; Wed, 20 Mar 2019 16:20:54 -0700 (PDT)
Date: Wed, 20 Mar 2019 23:20:54 +0000
From: Lucas Pardue <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2529/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Allow not creating QPACK codec streams (#2529)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c92cad6a6ee9_14973f809acd45c4560276"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: LPardue
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak2CLv/SdZtuPUtH178ynnv9Yszib/3UYT1QJY EIpGgv/pU0ft6H5+I0mLTnOC8IRyQjaG0qipkQWMApwSfB467H2tyHI3LhVg3SKl66tN+U+u55u6eE 9saL9imn+179hHPjaEa715l8pIvUnf5zs9rdjtKuelsnWLIqjJ/jwWyhEgKfFEbZyBa2ofQ3fXkZaO 0=
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, 20 Mar 2019 23:21:00 -0000

LPardue commented on this pull request.

>  HTTP_WRONG_STREAM_COUNT. These streams MUST NOT be closed. Closure of either
 unidirectional stream type MUST be treated as a connection error of type
+An endpoint MAY avoid creating its own encoder stream if the maximum size of
+the dynamic table permitted by the peer is zero.
+An endpoint MAY avoid creating its own decoder stream if the maximum size of
+its own dynamic table is zero.
+An endpoint MUST allow its peer to create both encoder and decoder streams

>  I'm not sure that's such a big deal. If you planned to use the dynamic table, but wasted your stream on grease instead of an encoder stream, then you can't use the table.

The problem is that the sender has no intention of creating an encoder stream but the receiver doesn't know that. If the receiver is eager to use QPACK, it keeps giving back a stream credit for every unidirectional stream that is "wasted" before creating the encoder stream. Even if it didn't give back credit immediately and did let the max uni stream limit be hit, there is no guarantee that the next time the receiver gives credit (say for a push promise) that then it wouldn't spontaneously be used for QPACK. 

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