Re: [Extra] Martin Duke's No Objection on draft-ietf-extra-imap4rev2-25: (with COMMENT)

Alexey Melnikov <alexey.melnikov@isode.com> Mon, 25 January 2021 11:12 UTC

Return-Path: <alexey.melnikov@isode.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 540FA3A0EED; Mon, 25 Jan 2021 03:12:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.198
X-Spam-Level:
X-Spam-Status: No, score=-0.198 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=isode.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 TGadfE63scde; Mon, 25 Jan 2021 03:12:18 -0800 (PST)
Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id F1A913A0F00; Mon, 25 Jan 2021 03:12:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1611573136; d=isode.com; s=june2016; i=@isode.com; bh=/wc/ANeYB0c0wh5v5AG1IgN6ZlJGmT21EMgjbD92LMg=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=T1g0WTg3ncFLbPbwo9ZMUeVIbvSP45scjANZLTdVarp7B0AIXvZMm1CA9jwB3zOKgTYOWx I96aDEI5S8z2Tyfxdn1CUst3CzAcWDbj8g4oXlcjbqPFW1+ALlvplQRRPVSZE6IIAtOyrG rpDmibSXvsr/8dyetrd3X3rdM5xGIoc=;
Received: from [172.27.251.194] (connect.isode.net [172.20.0.72]) by waldorf.isode.com (submission channel) via TCP with ESMTPSA id <YA6nkAAuQQjZ@waldorf.isode.com>; Mon, 25 Jan 2021 11:12:16 +0000
To: Bron Gondwana <brong@fastmailteam.com>, Martin Duke <martin.h.duke@gmail.com>
Cc: Barry Leiba <barryleiba@computer.org>, extra@ietf.org, The IESG <iesg@ietf.org>
References: <161137784334.20615.12096399788075509949@ietfa.amsl.com> <f950de71-5e6a-4b19-ad2e-40b7394c27f7@dogfood.fastmail.com> <CAM4esxS07JxMAQnfOOASxAZd3PvT=_GZpYE=P9i8d9nzpwmN=w@mail.gmail.com> <e132060b-1f15-4f36-982b-6aba2d1f8171@dogfood.fastmail.com>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Message-ID: <7b366fe2-9bfe-dc5c-d510-29a256e43b01@isode.com>
Date: Mon, 25 Jan 2021 11:12:15 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0
In-Reply-To: <e132060b-1f15-4f36-982b-6aba2d1f8171@dogfood.fastmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------ECD533FDA9757F8833541938"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/gHuBx9G9byNMOK-iXiYkHLX9nVc>
Subject: Re: [Extra] Martin Duke's No Objection on draft-ietf-extra-imap4rev2-25: (with COMMENT)
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: Mon, 25 Jan 2021 11:12:20 -0000

On 24/01/2021 23:01, Bron Gondwana wrote:

> Oh hey - I'll defer to Alexey / Barry on this one.  It looks like "UID 
> Set" is fresh terminology in imap4rev2 - I can't see it in RFC3501 - 
> so they can explain why it's needed.

"UID Set" came from RFC 4315 (UIDPLUS), which was folded into this 
document. It is needed to describe COPYUID/APPENDUID response codes, 
which always contain definite set of UIDs, i.e. no special "*".

Replying to Martin's comments below:

> Cheers,
>
> Bron.
>
> On Mon, Jan 25, 2021, at 08:14, Martin Duke wrote:
>> Thanks Bron,
>>
>> Your replies make sense, but one:
>>
>> Regarding 4.1.1, I find this terminology confusing, overloading the 
>> word "sequence", although at this stage maybe it can't be helped. 
>> Still, this section still seems very unclear to me.
>>
>> 4.1.1 
>> <https://datatracker.ietf.org/doc/html/draft-ietf-extra-imap4rev2-26#section-4.1.1>. 
>> Sequence set and UID set
>>
>>     A set of messages can be referenced by a sequence set containing
>>     either message sequence numbers or unique identifiers.  SeeSection 9  <https://datatracker.ietf.org/doc/html/draft-ietf-extra-imap4rev2-26#section-9>
>>     for details.  Sequence sets can contain ranges (e.g. "5:50"), an
>>     enumeration of specific message/UID numbers, a special symbol "*", or
>>     a combination of the above.
>>
>>     A "UID set" is similar to the sequence set of unique identifiers;
>>     however, the "*" value for a sequence number is not permitted.
>> So if I got this right, there's a "sequence set" that contains either 
>> sequence numbers or UIDs and can contain "*".
>> then there is also a "UID Set" which is UID only, and cannot contain 
>> "*". But then I have two questions:
>> (1) Can a sequence set have a combination of sequence numbers and 
>> UIDs (" a combination of the above")?
No it is not possible to combine them. And it is always clear from 
context (syntax) whether it is a sequence set of message numbers or a 
sequence set of UIDs. For example, FETCH command always takes a sequence 
set of message numbersas a parameter, while UID FETCH a always takes a 
sequence set of UIDs as a parameter.
>> (2) If a UID set can't have sequence numbers, then why is it 
>> explaining the lack of "*" in the context of UID sets with sequence 
>> numbers?

Hopefully my explanation below anwered that. Also, sequence set is the 
original concept from IMAP4, so explaining how UID set differs from it 
seem to make sense.

Basically "*" is suitable as input to a command, when its value can be 
evaluated by the server, while the client might not even know its exact 
value at the time the command is executed.

When the server is returning a UID set (which is typically a part of a 
map from old UID set to a new UID set), the client has to know all 
values. So "*" is not suitable for this case.

Best Regards,

Alexey

>>
>> On Sat, Jan 23, 2021 at 7:14 PM Bron Gondwana <brong@fastmailteam.com 
>> <mailto:brong@fastmailteam.com>> wrote:
>>
>>
>>     On Sat, Jan 23, 2021, at 15:57, Martin Duke via Datatracker wrote:
>>
>>     (I know the answers to these!)
>>
>>>     2.3.1.1 what would happen if the UID approached 2^32 due to a
>>>     lifetime of spam
>>>     or something? The server can increment the validity value, but
>>>     doesn’t that
>>>     make earlier email unreferenceable except via sequence number?
>>
>>     Sequence number is even less persistent - but when you increment
>>     the UIDVALIDITY you can renumber the UIDs for everything, so
>>     you'd just start at 1 and reid all the existing records.  So
>>     they'll be referenceable by their new UIDs next time the mailbox
>>     is selected.
>>
>>     And (plug) if the server implements RFC8474 (object ids) then a
>>     client can even tell that it's the same email and not need to
>>     fetch the content again, even after a UIDVALIDITY change.
>>
>>>     2.3.2 In the $Phishing definition, do you mean the user agent
>>>     SHOULD (in caps)
>>>     display an additional warning message?
>>
>>     This definition is copied from the IANA registry for keywords:
>>
>>     https://www.iana.org/assignments/imap-jmap-keywords/phishing/phishing-template
>>     <https://www.iana.org/assignments/imap-jmap-keywords/phishing/phishing-template>
>>
>>     I'm not sure there's any point in changing the text to be
>>     different from the IANA registration just to make it capital
>>     SHOULD. It's unlikely to change anybody's behaviour on reading
>>     this document.
>>
>>>     4.1.1 the last statement, “ the "*" value for a sequence number
>>>     is not
>>>     permitted.”, is oddly placed, enough that it almost reads like a
>>>     typo where you
>>>     meant UID. A clearer statement might be “The ‘*’ value is
>>>     permitted for UIDs
>>>     but not sequence numbers.”
>>
>>     No, that would be an incorrect statement.  The phrase "UID set"
>>     is a definitional term which means:
>>
>>     * a sequence set;
>>     * that references UIDs, not message numbers; and
>>     * that consists only of numbers, not the magic '*' character
>>     (which can change value as new messages arrive)
>>
>>     You can have a "sequence set" which references UIDs and does
>>     contain '*', but then it's not a "UID set" any more by definition.
>>
>>     Cheers,
>>
>>     Bron.
>>
>>     --
>>       Bron Gondwana, CEO, Fastmail Pty Ltd
>>     brong@fastmailteam.com <mailto:brong@fastmailteam.com>
>>
>>
>> _______________________________________________
>> Extra mailing list
>> Extra@ietf.org <mailto:Extra@ietf.org>
>> https://www.ietf.org/mailman/listinfo/extra 
>> <https://www.ietf.org/mailman/listinfo/extra>
>>
>
> --
>   Bron Gondwana, CEO, Fastmail Pty Ltd
>   brong@fastmailteam.com
>
>
>
> _______________________________________________
> Extra mailing list
> Extra@ietf.org
> https://www.ietf.org/mailman/listinfo/extra