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

Martin Thomson <notifications@github.com> Tue, 17 December 2019 01:30 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BFAB212096C for <quic-issues@ietfa.amsl.com>; Mon, 16 Dec 2019 17:30:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.999
X-Spam-Level:
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: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZUyGTl0q2Fo2 for <quic-issues@ietfa.amsl.com>; Mon, 16 Dec 2019 17:30:01 -0800 (PST)
Received: from out-21.smtp.github.com (out-21.smtp.github.com [192.30.252.204]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 163F812095C for <quic-issues@ietf.org>; Mon, 16 Dec 2019 17:30:01 -0800 (PST)
Received: from github-lowworker-56fcc46.va3-iad.github.net (github-lowworker-56fcc46.va3-iad.github.net [10.48.102.32]) by smtp.github.com (Postfix) with ESMTP id 5ABC2A003D for <quic-issues@ietf.org>; Mon, 16 Dec 2019 17:30:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1576546200; bh=b04d4MquLZQztOFdnSzT/kOsI+Q4YNSuHHYKxzu/FBM=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=B2f1a5blP5AB1EwGGvBYGzHvPHyRg9lUCxGSie68HZe2UPJTWcE4r3VVYO2q+6lhw WKuqubcI+xXvRdaJTh2+XBU6dWguaGCuiGITqxHitaVo4SBvrg6vix344mfbOkj/Ft DVkk+cRd3hyDnT7YTG0NxDsWAtXnR5+zVdUxBRgU=
Date: Mon, 16 Dec 2019 17:30:00 -0800
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK5ZCJHCJ3NXS6Z5O5N4AVRBREVBNHHCABYU5A@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3300/566338140@github.com>
In-Reply-To: <quicwg/base-drafts/issues/3300@github.com>
References: <quicwg/base-drafts/issues/3300@github.com>
Subject: Re: [quicwg/base-drafts] Forwarding upstream error mid-body to downstream (#3300)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5df82f984bbfa_7f493faa95ecd964168834"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/oKpMqISgLXzB4HWq4yTtMUyyLEo>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Dec 2019 01:30:03 -0000

I don't think that this is a good response to this condition.  It creates a situation where an intermediary purposefully violates the protocol.  If the connection is broken, then let it be broken.  The intermediary can forward precisely what it received, ensure that that data was received, then reset the stream if it truly cares about fidelity.

Note that the intermediary might also have to deal with gaps toward the tail of such a broken stream as well, and then they can't propagate that information with the same accuracy.

We shouldn't permit a condition that the recipient can't distinguish from badness.  The result of a change like this is to force clients to accept this junk as something other than a connection-level error.  That means we can't catch badness that looks similar to this.  For this particular kind of behaviour, I would expect connection errors in most implementations.

I realize that HTTP/1.1 implementations do this all the time and that CDNs often have to patch up these situations, but this isn't patching it up, it's propagating the badness to the rest of the system.  You are right the the badness is sometimes constrained.  As you say, the trailing part of a progressive image often can be lost with no visible impact.  This is an area where browsers might need to be tolerant of resets and retain at least what has already been displayed.  You might want to be able to rely on that happening too, so maybe this is an area in which we pursue solutions in other areas (like Fetch).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3300#issuecomment-566338140