MBOX-Line: From gds at chartertn.net  Sun Oct  8 19:51:43 2017
To: imap-protocol@u.washington.edu
From: Gene Smith <gds@chartertn.net>
Date: Fri Jun  8 12:34:55 2018
Subject: [Imap-protocol] Is server re-use of UID OK?
In-Reply-To: <CAByav=gfGNd2KHyx8kb9GQ-XEfs3L0LzqJuQGJRwDXg9x9mdMA@mail.gmail.com>
References: <38137c2b-f1f1-2bed-e22f-2aea7fa50ac3@chartertn.net>
	<CAByav=gBnVkLg+4z90ewBvKRVtOrEQ7XESfirEQ1dyx=Sb0MXw@mail.gmail.com>
	<abb75221-a38a-3317-86a2-98a8340e55d3@chartertn.net>
	<CAByav=gfGNd2KHyx8kb9GQ-XEfs3L0LzqJuQGJRwDXg9x9mdMA@mail.gmail.com>
Message-ID: <1a206274-8bce-f789-4dc9-638ed20e9372@chartertn.net>

On 10/8/17 9:40 PM, Tim Showalter wrote:
> On Sun, Oct 8, 2017 at 3:26 PM, Gene Smith <gds@chartertn.net 
> <mailto:gds@chartertn.net>>?wrote:
> 

Tim,
Thanks for your help.

> Recovering a used UID is never permitted*.?If there is no EXPUNGE, there 
> should be two copies of the message in Inbox in this example. (Setting 
> \Deleted is reversible.)

Yes, for other IMAP servers I have tested, if I copy message "A" 10 
times into Inbox I see 10 identical copies of message A in Inbox. For 
this openwave server, I see only 1 (and uid fetch 1:* (FLAGS) shows only 1).

> 
> The design of the specification is concerned with what happens when a 
> separate client connects before and after this exchange. Because UIDNEXT 
> has not been used correctly, clients that have cached state wouldn't see 
> changes to the mailbox correctly.

If the server would clear the \deleted flag at the destination uid and 
did no actual copy in response to this uid copy it would produce an 
acceptable result (message visible in client again). This would be no 
different than changing flags with uid store it would seem (e.g., what 
happen when a deleted message is undeleted with crtl-z in client). Not 
sure how other/separate clients would be confused by this.

> 
> I guess the server might have an optimization (aka hack) for this, but 
> it doesn't appear to be properly protocol compliant.

So in summary, you are saying that the server should always use the 
UIDNEXT or greater when messages are copied to a mbox, even if the 
server determines there is an identical message at a lower UID. To do 
otherwise violates rfc 3501.

-gene

