Re: [imap5] Should unsolicited EXPUNGE responses be returned during UID MOVE?

Timo Sirainen <tss@iki.fi> Wed, 30 May 2012 17:27 UTC

Return-Path: <tss@iki.fi>
X-Original-To: imap5@ietfa.amsl.com
Delivered-To: imap5@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ECC3311E80D2 for <imap5@ietfa.amsl.com>; Wed, 30 May 2012 10:27:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.253
X-Spam-Level:
X-Spam-Status: No, score=-110.253 tagged_above=-999 required=5 tests=[AWL=0.346, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SGKMdhCThijG for <imap5@ietfa.amsl.com>; Wed, 30 May 2012 10:27:25 -0700 (PDT)
Received: from dovecot.org (dovecot.org [193.210.130.67]) by ietfa.amsl.com (Postfix) with ESMTP id 359FC11E80BB for <imap5@ietf.org>; Wed, 30 May 2012 10:27:25 -0700 (PDT)
Received: from [192.168.10.101] (a88-112-255-76.elisa-laajakaista.fi [88.112.255.76]) by dovecot.org (Postfix) with ESMTP id 976EF1AE8823; Wed, 30 May 2012 20:27:23 +0300 (EEST)
Mime-Version: 1.0 (Apple Message framework v1084)
Content-Type: text/plain; charset="us-ascii"
From: Timo Sirainen <tss@iki.fi>
In-Reply-To: <F9EF38629F2CFC0AA9687FFC@caldav.corp.apple.com>
Date: Wed, 30 May 2012 20:27:22 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <76722931-7258-4A3F-9F60-14DA74FC8B1A@iki.fi>
References: <F9EF38629F2CFC0AA9687FFC@caldav.corp.apple.com>
To: Cyrus Daboo <cyrus@daboo.name>
X-Mailer: Apple Mail (2.1084)
Cc: "Discussion on drastically slimming-down IMAP." <imap5@ietf.org>
Subject: Re: [imap5] Should unsolicited EXPUNGE responses be returned during UID MOVE?
X-BeenThere: imap5@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion on drastically slimming-down IMAP." <imap5.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imap5>, <mailto:imap5-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/imap5>
List-Post: <mailto:imap5@ietf.org>
List-Help: <mailto:imap5-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imap5>, <mailto:imap5-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 30 May 2012 17:27:26 -0000

On 30.5.2012, at 20.20, Cyrus Daboo wrote:

>>> So Arnt tells me.
>> 
>> If I can implement it this way without violating the spec:
>> 
>> 1. Verify that ACLs allow expunge, fail if not
>> 2. Do atomic UID COPY without enforcing quota limits
>> 3. Expunge the messages
>> [4. If expunge for some strange reason fails now, there are probably
>> duplicates now. I'm not sure if I want to bother fixing that situation.
>> It should "never" happen anyway.]
>> 
>> then I could add it to Dovecot pretty much immediately.
> 
> So if the expunge does fail, how are you going to report that to the client? Arnt's current spec does not show any * N EXPUNGE responses coming back, so I am assuming that the client is supposed to implicitly assume the expunges took place, which would cause a problem if they did not take place. But that seems wrong to me - shouldn't UID MOVE cause * N EXPUNGE to be sent for each message that was actually moved?

I assumed that this was a bug in the example and was going to report it as some point. I think the EXPUNGE/VANISHED replies should be sent in any case, even if MOVE was required to be fully atomic. Otherwise if the UID MOVE command sends an untagged FETCH/EXPUNGE reply it wouldn't be obvious if the sequence number referred to the state before or after the MOVE expunges.