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

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

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 70A11131169 for <>; Wed, 20 Mar 2019 13:38:30 -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 NczNSS-UDIFc for <>; Wed, 20 Mar 2019 13:38:28 -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 2AE451311B3 for <>; Wed, 20 Mar 2019 13:38:24 -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=OlqXVxX77igoB1d1OP9oRhN/nAk=; b=EdMOyJbPQ/MZEo+V W0aJZkz+SLMWqTt/Aregq+LpeoIznurtshaqTXfWpfAlTRYAKYvAefj9zCIcaucD 0SbRpTKzziu4Zo1+pFBoS7VGvMJiD6hidBAQmbJHq0lgULeUbmCRCxm7Y5eouuKF LbtIPPo4/wZd8S/LwLWIbqLKsj4=
Received: by with SMTP id filter1761p1mdw1-2223-5C92A4BE-1D 2019-03-20 20:38:22.832113707 +0000 UTC m=+153056.317900742
Received: from (unknown []) by (SG) with ESMTP id n5P9MkkLQWGvDzx3ib-SLQ for <>; Wed, 20 Mar 2019 20:38:22.783 +0000 (UTC)
Received: from (localhost []) by (Postfix) with ESMTP id B366F3E034D for <>; Wed, 20 Mar 2019 13:38:22 -0700 (PDT)
Date: Wed, 20 Mar 2019 20:38:22 +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_5c92a4beb1c94_7b663fbc3acd45c03246d4"; 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: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak30oizZ23Q9GuTqnI/vBHd/JQBWLaIu/JnLw2 SjF7StwQU6RAcMUZGLW/6CCZ4ChyHp0IBJq3beplLbSMspUOwkkNJx9nf0I8SscBhivxiRThpKojvV v0hYHL51E5qbBDDJoVvKItkYSMNDP6HVpek+kem7kXluCZHHzQxBpQQCc4US/1QQFmEBtMDk9+HHjb Q=
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 20:38:31 -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

The trap here is that a peer sets initial uni directional streams. And then may increase this value. 

Uni directional stream accounting needs to factor in qpack, push promise and whatever other extension mechanisms might come to pass.
The explicit signal that's missing is for QPACK off. If you dont tell the peer you wont use QPACK, and it advertised a size > 0. It will have to entertain that this could happen at any point in the connection. 

In a pathological case, you give me 3 credits and I use them to send control and 2 grease streams. What happens next?

I think these sorts of issues will come to light, the specs are not so helpful in guidance right now.

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