Re: [quicwg/base-drafts] Forwarding upstream errors, and the implications (#3300)

Mike Bishop <> Mon, 13 January 2020 21:09 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2CAF91208B9 for <>; Mon, 13 Jan 2020 13:09:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -7.999
X-Spam-Status: No, score=-7.999 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_IMAGE_ONLY_32=0.001, 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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OQDJ-TW9AHHb for <>; Mon, 13 Jan 2020 13:09:31 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 4769C12002F for <>; Mon, 13 Jan 2020 13:09:31 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id A177C6A0068 for <>; Mon, 13 Jan 2020 13:09:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1578949770; bh=mgkhUXen8dZfsnwuDhiVwVR7/1ZKICYVm5eBwYJl+TY=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=N5a6FUelGQAl/nBH/FyrVaXCdSGs3cVfp0h2zCm7IfCXbLqosT8zMn9tvxXJ7SInI zvslpun6hRYvvtKAiNyLGeHNZ2glm0bZ+pLnnpMZZRLhGqiySAZyE0m/7mfQ3/f6Xv vp0aSYb56m9nG5jS+VzGtgUY5qMyF3OGddIyqurs=
Date: Mon, 13 Jan 2020 13:09:30 -0800
From: Mike Bishop <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/3300/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] Forwarding upstream errors, and the implications (#3300)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e1cdc8a923eb_70a63fc0970cd964609ea"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
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: Mon, 13 Jan 2020 21:09:33 -0000

Taking a look at the text, I still think the right principle here is that errors which might have been tunneled from an origin shouldn't be required to be stream errors.  Looking at the text, here are the things that might fall into this category:

- "Malformed" requests or responses are already stream errors
- Other frame types on CONNECT streams are connection errors, but with a CONNECT stream, the tunneled content is the DATA payload.  This could go either way.
- Frames that don't have the right size/content are connection errors, including final frames on streams that close cleanly.
- Control frames on non-control streams are connection errors.

Does this principle hold for the opposite direction?  Should servers consider garbage on streams as stream errors, because the "client" might actually be a proxy for several clients?  It's probably the simplest to keep things symmetrical.

I've put #3336 as an alternative solution to this.

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