Re: [Extra] I-D Action: draft-ietf-extra-imap-messagelimit-03.txt

Phillip Tao <ptao@apple.com> Wed, 14 June 2023 20:04 UTC

Return-Path: <ptao@apple.com>
X-Original-To: extra@ietfa.amsl.com
Delivered-To: extra@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 03B09C151070 for <extra@ietfa.amsl.com>; Wed, 14 Jun 2023 13:04:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.098
X-Spam-Level:
X-Spam-Status: No, score=-7.098 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, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wmsqJvbKAioi for <extra@ietfa.amsl.com>; Wed, 14 Jun 2023 13:04:18 -0700 (PDT)
Received: from rn-mailsvcp-mx-lapp02.apple.com (rn-mailsvcp-mx-lapp02.apple.com [17.179.253.23]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 83CD0C14CE55 for <extra@ietf.org>; Wed, 14 Jun 2023 13:04:18 -0700 (PDT)
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by rn-mailsvcp-mx-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.22.20230228 64bit (built Feb 28 2023)) with ESMTPS id <0RW900UU1EF5CD50@rn-mailsvcp-mx-lapp02.rno.apple.com> for extra@ietf.org; Wed, 14 Jun 2023 13:04:18 -0700 (PDT)
X-Proofpoint-GUID: B29-UxcmGGaKGgSELVxjdN7jui8sUrKN
X-Proofpoint-ORIG-GUID: B29-UxcmGGaKGgSELVxjdN7jui8sUrKN
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.573, 18.0.942 definitions=2023-05-10_04:2023-05-05, 2023-05-10 signatures=0
X-Proofpoint-Spam-Details: rule=interactive_user_notspam policy=interactive_user score=0 suspectscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 spamscore=0 adultscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305100148
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=content-type : mime-version : subject : from : in-reply-to : date : cc : content-transfer-encoding : message-id : references : to; s=20180706; bh=tDqXuzqBdyMZkx4cgJR41SiIzpBMRQ/7ur9WIDHB6mg=; b=jah8ce4tldcPR1A6/qa3W07UZU9Ub/ixq+Br3a3coGC+RC1tSazh87gpxhkY7qA4pdEV q53wx5w6s8uU+eywA+0SylNuenoFtluunID9Ar7F9+rQRZ8ib5a26oxYqPt4ClBpO492 cjqoetGCxcBMofDpJPVsh2Bg0mMZYDNSsKuMjN4R0x0+3SNnDleL5nXZ4yHBzTmye6iW 9o25aUpebebvlFqKxVFHGtYc26PnJ/WxvmnkIg8y1evAx7Jl5L1I9eeDa48ZoHVW31fT hZoPuAkLXWiSQiCVWZ/cgQuJgWvyAtCqviID3+iVTn5jZzOZXzGaysbe+Fd3GkBMrG46 sw==
Received: from rn-mailsvcp-policy-lapp01.rno.apple.com (rn-mailsvcp-policy-lapp01.rno.apple.com [17.179.253.18]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.22.20230228 64bit (built Feb 28 2023)) with ESMTPS id <0RW900BBOEF50F70@rn-mailsvcp-mta-lapp02.rno.apple.com>; Wed, 14 Jun 2023 13:04:18 -0700 (PDT)
Received: from process_milters-daemon.rn-mailsvcp-policy-lapp01.rno.apple.com by rn-mailsvcp-policy-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.22.20230228 64bit (built Feb 28 2023)) id <0RW900N00EAEXN00@rn-mailsvcp-policy-lapp01.rno.apple.com>; Wed, 14 Jun 2023 13:04:17 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 1d70b35fe16f0cb95be4f1b3bbc36b98
X-Va-E-CD: 1c1b15bd2374d2b3e7a4117154030938
X-Va-R-CD: 57d4d7480bc8395466fbedd749b8a3f3
X-Va-ID: 30f309f9-f33c-4153-beeb-4b1da5e757d1
X-Va-CD: 0
X-V-A:
X-V-T-CD: 1d70b35fe16f0cb95be4f1b3bbc36b98
X-V-E-CD: 1c1b15bd2374d2b3e7a4117154030938
X-V-R-CD: 57d4d7480bc8395466fbedd749b8a3f3
X-V-ID: ee733e0c-ea63-4a70-bf57-d366efb55505
X-V-CD: 0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.573, 18.0.957 definitions=2023-06-14_14:2023-06-14, 2023-06-14 signatures=0
Received: from smtpclient.apple ([17.114.180.204]) by rn-mailsvcp-policy-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.22.20230228 64bit (built Feb 28 2023)) with ESMTPSA id <0RW900P88EF5PO00@rn-mailsvcp-policy-lapp01.rno.apple.com>; Wed, 14 Jun 2023 13:04:17 -0700 (PDT)
Content-type: text/plain; charset="us-ascii"
MIME-version: 1.0 (Mac OS X Mail 16.0 \(3731.600.3\))
From: Phillip Tao <ptao@apple.com>
In-reply-to: <d5ed8e8a-0bb4-47e2-a297-c61f789d0984@gulbrandsen.priv.no>
Date: Wed, 14 Jun 2023 13:04:16 -0700
Cc: extra@ietf.org
Content-transfer-encoding: quoted-printable
Message-id: <E62A3C38-84B5-4F38-B4EF-8DC211B886B9@apple.com>
References: <00770A87-789E-4477-87F2-3EC059EE01FE@apple.com> <f801ffdd-a4ef-8f43-8d0c-076332df2040@isode.com> <43061B0C-8DCF-42EE-8E7D-69C251538618@apple.com> <d5ed8e8a-0bb4-47e2-a297-c61f789d0984@gulbrandsen.priv.no>
To: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
X-Mailer: Apple Mail (2.3731.600.3)
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/EizrmmScl7fbd7iho2Whe0zbzM4>
Subject: Re: [Extra] I-D Action: draft-ietf-extra-imap-messagelimit-03.txt
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Email mailstore and eXtensions To Revise or Amend <extra.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/extra>, <mailto:extra-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/extra/>
List-Post: <mailto:extra@ietf.org>
List-Help: <mailto:extra-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/extra>, <mailto:extra-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Jun 2023 20:04:24 -0000

Thanks for the discussion, Arnt.

Comments inline.

- Phillip

> On Jun 12, 2023, at 2:41 AM, Arnt Gulbrandsen <arnt@gulbrandsen.priv.no> wrote:
> 
> Hi,
> 
> I suspect there are diverging assumptions here.
> 
> When I wrote RFC 5530, I asked around about what responses then-current servers sent, collated the lists, and synthesised the list in what's now RFC 5530. The list includes CANNOT and LIMIT. Those two are on the list because there are (unspecified) things some server CANNOT do, and (equally unspecified) LIMITs on the size of some operations or data structures.
> 
> I also seem to remember a couplf of Stack Overflow questions that implied that some servers would close the connectiion rather than parse a UID set with tens of thousands of commas. (The answer to which was "use the range syntax, x:y".)
> 
> I think Alexey shares my impression of the current servers do, but Philip does not.
> 
> In my view, this extension just announces limits without changing what the servers do. Extended and unextended client will not experience different server behaviour.

Correct, extended and unextended clients will experience the same server behavior from an extended server.

However, clients will experience different behavior between extended and unextended servers. Extended clients will understand the this difference of behavior.

Unextended clients will not. Unextended clients cannot distinguish between an extended and unextended server, and will therefore expect that servers will continue to behave in the same manner as they've always behaved. This is the case that I'm worried about.
> 
> Perhaps the best way forward is to add a MUST NOT paragraph:
> 
I'm not sure I fully understand this paragraph.

> "The server can infer whether the client uses this extension by observing the client's commands.

Again, why infer rather than explicitly communicate with an ENABLE?

> The server MUST NOT impose lower limits on a suppprting client than on other clients. Put differently, if code in a client worked in the past, then adding support for this extension MUST NOT break it due to lower server limits.

These two sentences seem to be saying different things? The first sentence seems to say that servers should not behave differently for extended and unextended clients. If so, why does the server need to infer whether a client uses this extension?

The second sentence says that the server must not break existing client implementations. Which is great, but what exactly does "break" mean here? And how does the first sentence lead to the desired outcome (non-breakage) of the second sentence?

> This extension simply permits a supporting client to know in advance whether a command will fail, avoid issuing such a command, and divide it into smaller parts if they want."
> 
> Maybe also two or three small examples showing how unextended clients receive CANNOT and/or LIMIT response codes.

This is interesting also. Is there a reason why a new response code was chosen rather than using the existing LIMIT?

Also, both CANNOT and LIMIT are, I believe, given with a NO response right now? I don't know if that's required, nor do I have any empirical data of how existing servers use them, but that's my understanding based on what I've seen and what the examples in RFC 5530 and others show.

So, in this case, are you proposing that we return NO [LIMIT] for commands other than COPY?

Between returning a set of partial results and OK vs. no results and NO, I can see how the partial results seem to be the more compatible approach. But again, I'm worried that that will break some expectations that existing clients have about an OK always meaning "all results".
> 
> Arnt
> 
> _______________________________________________
> Extra mailing list
> Extra@ietf.org
> https://www.ietf.org/mailman/listinfo/extra