Re: Conflicting MUST in RFC7540
Martin Thomson <mt@lowentropy.net> Thu, 24 January 2019 07:58 UTC
Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DC334130EC5 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 23 Jan 2019 23:58:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3
X-Spam-Level:
X-Spam-Status: No, score=-3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=RS2OJukk; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=fNh97nXs
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 GwBSMqaCccgq for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 23 Jan 2019 23:58:57 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 590CF1310D4 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 23 Jan 2019 23:58:57 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1gmZt1-00067s-OV for ietf-http-wg-dist@listhub.w3.org; Thu, 24 Jan 2019 07:57:19 +0000
Resent-Date: Thu, 24 Jan 2019 07:57:19 +0000
Resent-Message-Id: <E1gmZt1-00067s-OV@frink.w3.org>
Received: from mimas.w3.org ([2603:400a:ffff:804:801e:34:0:4f]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <mt@lowentropy.net>) id 1gmZt0-00067F-DI for ietf-http-wg@listhub.w3.org; Thu, 24 Jan 2019 07:57:18 +0000
Received: from new3-smtp.messagingengine.com ([66.111.4.229]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <mt@lowentropy.net>) id 1gmZsz-0007fv-0x for ietf-http-wg@w3.org; Thu, 24 Jan 2019 07:57:18 +0000
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailnew.nyi.internal (Postfix) with ESMTP id 975B83B3F; Thu, 24 Jan 2019 02:56:56 -0500 (EST)
Received: from web3 ([10.202.2.213]) by compute1.internal (MEProxy); Thu, 24 Jan 2019 02:56:56 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=message-id:from:to:cc:mime-version:content-transfer-encoding :content-type:in-reply-to:references:subject:date; s=fm1; bh=Q2b IXDZ5YCFAYJQ3hqv1MPK5DIwW4QI14DatoyZbH54=; b=RS2OJukk5GPqwG1ZCGJ ho3/t3x59hNZvlCerTXN99YJ7nYO0PqzXr0r/zHWMd07htEF2bSJTzhtCvsLSkxr tH6vNRQaDv/WzjjFXHRaUkMo1Ec4mcy6VzrjcJZNPh0TakBEk6MmFf4NrqDwoBBl roh7scSCE6PndDPqcRND/clzyea5ocZ7iKOEyHOTm9aYB0Fol8rPAkvKAvEmVlMA FXKUBC1fAFZ6qwRcRyIcAqPuZq1xGOz0yasLPWByVOGDTHXhuVRkEUti2UsknLZN r0S72QSZdnBIfgcCR+L12JRUpGpMD6hcSJkZtfhxZeF6T4/wwPVJGUWNLeBtVSrA mlg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=Q2bIXDZ5YCFAYJQ3hqv1MPK5DIwW4QI14DatoyZbH 54=; b=fNh97nXsO5+oRQIWeISRGRLzn5UtFQJArmfonmV7bSVVtmfhzhjv/cEUD k8HVhwzHrqFix88Uz8mhhOTeYp0YDT5tOFzL9OU1Ik5OA7819vbS4CRdgCNSxjJ4 ytuPuh19HCdImjGgWR9ftk2rRHMi/ZhkilVcFCUtcBZB/3nfc7PGkytxI8AFLkAH k+HdLg34StWMdDr6JZJMXwNWX3w2GQS+6rfMdZCM9zxLBSNT2zq8DGxus2D0jhS6 Wrqqzf7yntBX+ggJn4eaIaZcFxKGRsCa0BL1Dn6sMJSDqd67tsjhY7BBVV+Y+6/Z 9T6qukjMTUPt8/4QtQ7rtV76VMANQ==
X-ME-Sender: <xms:x29JXKmDdd4fYAbbTQaXT-zS3ABqQgzlE_3E8B6mCNHtosFGbEUphg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtledriedugdduudefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegrihhlohhuthemucef tddtnecunecujfgurhepkffhvfgggfgtofgjfhfuffesthejredtredtjeenucfhrhhomh epofgrrhhtihhnucfvhhhomhhsohhnuceomhhtsehlohifvghnthhrohhphidrnhgvtheq necurfgrrhgrmhepmhgrihhlfhhrohhmpehmtheslhhofigvnhhtrhhophihrdhnvghtne cuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:x29JXHukZDo6aUGG-672sjTOkPTh8EzeArbEqMe4mRSVMHQ60r7Pcg> <xmx:x29JXLGqzC_cnH31oYsqAe0fvbb9y5cFOT2UDO3FWiCAH_sYStfhSw> <xmx:x29JXPt4AE6Vxqe8JQwYCKEvn0EMBLz44iUnj3AWkvBIiCZlny52WA> <xmx:yG9JXK2ylUXec3j5ZOg30Pq9OPSQ6jMLEA7Uv_EyQ79rUggAkFwT4Q>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 8D05E9E562; Thu, 24 Jan 2019 02:56:55 -0500 (EST)
Message-Id: <1548316615.2420919.1642372552.7F3F2F31@webmail.messagingengine.com>
From: Martin Thomson <mt@lowentropy.net>
To: Willy Tarreau <w@1wt.eu>
Cc: ietf-http-wg@w3.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="utf-8"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-36e4bfd3
In-Reply-To: <20190124074956.GB20835@1wt.eu>
References: <20190124054406.GA20835@1wt.eu> <1548314994.2412954.1642355232.1714E6EA@webmail.messagingengine.com> <20190124074956.GB20835@1wt.eu>
Date: Thu, 24 Jan 2019 18:56:55 +1100
X-W3C-Hub-Spam-Status: No, score=-5.8
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1gmZsz-0007fv-0x 0ec2ccf3d785e5f8ca71c2d272a6f936
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Conflicting MUST in RFC7540
Archived-At: <https://www.w3.org/mid/1548316615.2420919.1642372552.7F3F2F31@webmail.messagingengine.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/36285
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>
On Thu, Jan 24, 2019, at 18:49, Willy Tarreau wrote: > I've found a few other ones in the past that I had to address so that > h2spec doesn't complain, I was fine with doing so because either choice > was OK. I really think that the problematic ones are for these few frames > which affect the compression state. Ahh, I don't think that we should be subject to the tyranny of the interop suite in this case. If you were responding to a genuine error condition with the prescribed error code, you should be conformant. > > This specification or its extensions could define error conditions that > > result in conflicting requirements about which error code is sent when > > multiple errors are present. Implementations MAY respond to the first > > error condition that they detect. Consequently, if multiple errors are > > present, different implementations could produce different error codes. > > However, a connection error MUST NOT be suppressed as a result of reporting > > a stream error. > > Do you imply by the last sentence that both a stream error and a connection > error should be sent in this case ? Maybe. The idea is not to constrain the error reporting so that both have to be juggled and balanced. You should be able to report the stream error then the connection error, or if you encounter the connection error first, just report that. (Or report the stream error as a connection error, which is also permitted). > If so, it sounds less natural to me > because it could significantly complicate error paths depending on the > implementations. What about something like this : > > When a violation could result either in a stream error or a connection > error depending on where the condition is matched, the connection error > has precedence and must be applied. Yeah, what you have is probably clearer, but I would simply say "the connection error MUST be reported". The notion of precedence doesn't really matter here - that might imply a requirement to suppress the stream error, which I don't think is a good idea. Error reporting needs to be uncomplicated and direct, and any implication of having to bundle them up so you can sort them out encourages sloppy code on critical paths that don't often get enough exercise in the real world.
- Conflicting MUST in RFC7540 Willy Tarreau
- Re: Conflicting MUST in RFC7540 Martin Thomson
- Re: Conflicting MUST in RFC7540 Willy Tarreau
- Re: Conflicting MUST in RFC7540 Martin Thomson
- Re: Conflicting MUST in RFC7540 Willy Tarreau