Re: [Extra] Working Group Last Call - draft-ietf-extra-imap-fetch-preview-08

Bron Gondwana <brong@fastmailteam.com> Tue, 07 July 2020 04:38 UTC

Return-Path: <brong@fastmailteam.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 A4F193A07B3 for <extra@ietfa.amsl.com>; Mon, 6 Jul 2020 21:38:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=pUkqNJ7p; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=tDUGdH8K
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 QD6-iXjYUuk6 for <extra@ietfa.amsl.com>; Mon, 6 Jul 2020 21:38:29 -0700 (PDT)
Received: from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com [64.147.123.19]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7E4163A07B1 for <extra@ietf.org>; Mon, 6 Jul 2020 21:38:29 -0700 (PDT)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 8D8CAD60 for <extra@ietf.org>; Tue, 7 Jul 2020 00:38:28 -0400 (EDT)
Received: from imap38 ([10.202.2.88]) by compute1.internal (MEProxy); Tue, 07 Jul 2020 00:38:28 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:in-reply-to :references:date:from:to:subject:content-type; s=fm3; bh=zwgBCBC myIZvtMfrmsLQjqK/M4iL28ksXxCypfDNc48=; b=pUkqNJ7p0xgc6DgUDn2wbu/ SIdwLX7wFUl9m9lEPD+Vd9mbGFb9J4bZXfxiq3M3cMyTz0EdUFqpWAb8at3p8EiC u+nmIpxhM/H0US+WbvM6ZHBNJlRyLQflEj/5+CGwe935qK/eSoQTxujX+pniQpk5 BbOkwGXb7cGi8YWZiCdcSboqEoN/Z0qlKCScA+I2NMMWvYd7oEviPNV3rxshiyVD oSr0QxJlhn+2QL6qQYjdj4TGd5BPXwoQfVr5p51vu3Bm/EOJQTEJor7AUsGmuwF6 hveg8aYiFbUOMSqZ5p1qhqLnyYkJj/8WNU+KklO/UOnlnmEI6PTQItKtyAL4p2w= =
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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=fm3; bh=zwgBCB CmyIZvtMfrmsLQjqK/M4iL28ksXxCypfDNc48=; b=tDUGdH8KlM0OQVBcUbrSPH MapdTCcguMpr2NuwiOBq0cww+Vb6l9S6PuTh4pbixlc/sfDaDn46KZgEMSbFHVnF I+Rodf00Itpwm6a8atmRXcd/6hxWeuEpPQNPzQzFRW96c06l78kd4ojMIUhIDdeg d1MqzeCAkgtrEn+edYidpLBp/NVBqJVw/euN0adXAnJ78q+dQxPSIv7XRGxt4Tj0 GVKKGTmewtIzceZFRa3LkWFIpJ0PM88W+9HfQ3pjxTiR8k7UWkzWgLo6WuWR7mZh SBsVSIjHnLBwcAQKqHiuORh1MAQxQLoiXE1E4c6Bt9gAUy7R29kXWl4eYe+YsD5A ==
X-ME-Sender: <xms:Q_wDX7OLPGckK_P4snlhUBHnY6QNI-PYK8BxwnTGPv1VQnvHZ9YJBw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrudeggdekkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesrgdtre erreerjeenucfhrhhomhepfdeurhhonhcuifhonhgufigrnhgrfdcuoegsrhhonhhgsehf rghsthhmrghilhhtvggrmhdrtghomheqnecuggftrfgrthhtvghrnheptdehteegfeevte duffevteehfffghefhvdevkeeuhfehueetudehgfegieekjeetnecuvehluhhsthgvrhfu ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepsghrohhnghesfhgrshhtmhgrih hlthgvrghmrdgtohhm
X-ME-Proxy: <xmx:Q_wDX19pRKVTQcW8f9UMN1Feok3_LLLiFdAr7vILL41L7tvOQFkong> <xmx:Q_wDX6SPwFGE2rBmyqaJOxJukwingKg6BmOse-Ysgk73v84loLkCOA> <xmx:Q_wDX_vsHbgBl4nfgGPzvM0EmvmhsKqMKaP_KyS_epUDICtJpStsAQ> <xmx:RPwDX2-MPsjXEjj35eTwIX4lVWch_7EDob459XjcuH7zfTMrx-9Now>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id C8EFC4AA005D; Tue, 7 Jul 2020 00:38:27 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-dev0-619-g3deeb4d-fm-idx2020-20200707.001-g3deeb4df
Mime-Version: 1.0
Message-Id: <0cbbf363-2652-40a7-baad-e0d7e38037e8@dogfood.fastmail.com>
In-Reply-To: <1948688035.19548.1594092129291@appsuite.open-xchange.com>
References: <c4da8962-ec81-4ee5-b2e1-258d5b247770@dogfood.fastmail.com> <E7CA280C-D1B9-4BE7-8109-E070CF742623@sirainen.com> <1948688035.19548.1594092129291@appsuite.open-xchange.com>
Date: Tue, 07 Jul 2020 14:38:04 +1000
From: Bron Gondwana <brong@fastmailteam.com>
To: extra@ietf.org
Content-Type: multipart/alternative; boundary="25559856873c4785920591f9707dcaba"
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/hfd1Ak03d6iRbHFGXLXkdyIkrIc>
Subject: Re: [Extra] Working Group Last Call - draft-ietf-extra-imap-fetch-preview-08
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.29
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: Tue, 07 Jul 2020 04:38:32 -0000

On Tue, Jul 7, 2020, at 13:22, Michael Slusarz wrote:
>> On 07/02/2020 3:20 AM Timo Sirainen <timo@sirainen.com> wrote:
>> 
>> 
>> On 2. Jul 2020, at 4.56, Bron Gondwana < brong@fastmailteam.com> wrote: 
>> 
>>> As discussed in the interim meeting, this document was brought back to the working group to be reverted to an earlier and simpler version. 
>>> 
>>> This email announces a 2 week working group last call for any further comments on this version before I re-submit to IESG for publication. Please reply with any comments by Thursday, July 16th 2020. Let's get this one off our plates before IETF108. 
>> 
>>  It is possible that preview text is not available now, but might be
>>  available later -- perhaps the server's preview-generating resources
>>  are overloaded, there is a server-imposed timeout during preview
>>  generation, or there is some transient issue with fetching the
>>  message body. In such cases, the server will return NIL as the
>>  preview response, and the client can try to retrieve the preview
>>  later.
>> This sounds like it's possible for server to return NIL even when the LAZY modifier isn't specified. Is this really wanted? I'd think client developers would prefer that only LAZY can return NILs. Either way, it's not clearly enough specified what is intended. 
> I was originally going to agree with Timo ... but then I remember we added this part as a direct response to a potential DoS situation - what happens if preview requests are (subjectively) taking too much time.
> 
> If a server can't produce a preview within a certain time threshold, it should somehow be able to abort the request. NIL might not be the best solution, but what if it empty string ("") is returned? Then a caching client may never have preview text for that message, even though the inability to return the text may be a temporary issue. 
> 
> LAZY means a server should return preview only if it is pre-generated (or can be generated without noticeable delay to user). non-LAZY request should return PREVIEW unless it exceeds some sort of server-defined timeout. But in the latter case - unless the server knows it can never create a PREVIEW, it does seem that NIL is the semantically correct response, at least given the current definitions. Empty string means the server has canonically decided that no reasonable preview can be generated. 
> 
> Another suggestion might be to return NO response to the FETCH ... but semantics of that are a little tortured if the rest of the FETCH request could be returned, or if preview can be returned for all but one of the messages requested in the FETCH.
> 
> In the IMAP spec we have: "The LIST command SHOULD return its data quickly, without undue delay." Maybe adopt this language and leave it to server to figure out what is "undue delay?" But that doesn't address whether empty string or NIL is the correct response if undue delay is reached... 

I'm good with the server returning a NO to the whole fetch with text like "preview generation took too long, try again with LAZY". I mean - the Cyrus server does something like that with SEARCH results that take too long these days - it'll just tell you "NO try again with a less expensive search" if it takes over 30s with our config. I expect we'd do the same with FETCH - send a NO (possibly part way through the fetch results) if we hit this kind of error.

Maybe some client advice:

1) make the initial fetch with PREVIEW (LAZY) and the other fields you care about.
2) for items that got a NIL response, batch request non-lazy PREVIEW in sensible-sized batches (e.g. 64 at a time)

Bron.


--
 Bron Gondwana, CEO, Fastmail Pty Ltd
 brong@fastmailteam.com