Re: [quicwg/base-drafts] Forwarding upstream error mid-body to downstream (#3300)

Kazuho Oku <> Tue, 17 December 2019 04:07 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B6EDA1200A1 for <>; Mon, 16 Dec 2019 20:07:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8
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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 8vnv7NkzOwxC for <>; Mon, 16 Dec 2019 20:07:45 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 1F529120041 for <>; Mon, 16 Dec 2019 20:07:45 -0800 (PST)
Date: Mon, 16 Dec 2019 20:07:43 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1576555663; bh=9dpXrqZ81lLC+5ezi7nUU8WcgO5jFFOPnp3WiJZx+S4=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=NnUkAWecnkpBC4X4sHUmVeAzu9IGbp/tiCv92Nw0l6TQiCGS6HP65YuE99aB5F3q2 jmlJUgshl62hOAVQi+zu+SA3CbCEWI6R/BTme36LCVn30svyXM6/lmNwqredsD/ZAG WaevZWU9DAnvbrp9rE9aUD30Hk9KC1EnJ2lHSDqs=
From: Kazuho Oku <>
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 error mid-body to downstream (#3300)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5df8548fe0625_342d3fdebc4cd96811213b"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
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: Tue, 17 Dec 2019 04:07:47 -0000

@martinthomson Thank you for sharing your views. I am not sure if it correct to frame this issue as specific to CDNs, I might argue that it is a problem for intermediaries in general.

I agree that we shouldn't try to introduce in-order delivery of stream resets at the transport layer. If we are to introducing that, it should be a new signal within HTTP/3.

> Adding in-order resets at the application layer for HTTP/3 is not trivial either. A frame on the same stream is not going to work because it prevents an intermediary from forwarding without reframing at that layer. Otherwise, they would not be able to guarantee that they can send any frame on the stream. That requires a big shift in how people approach building of intermediaries.

I think this is what I disagree. I _think_ that many if not most of the intermediaries to be doing reframing. In case of HTTP/2, intermediaries _should_ have been doing reframing by itself, otherwise it cannot prioritize the responses, I'd assume that proxies would be doing the same for HTTP/3 (though I might be wrong).

If that assumption is correct, the fix would be as trivial as introducing a HTTP/3 frame indicating the error, which is sent on the request stream. It's ugly to have two ways of signaling error (one at QUIC layer and one at HTTP layer), but it'd help us provide same expectations across different versions of HTTP.

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