On 12/11/2013 03:49 PM, Bron Gondwana wrote:


On Thu, Dec 12, 2013, at 05:33 AM, David Mansfield wrote:
Hi All,

I'm tracing a problem that is reproducible on cyrus-imapd 2.3.16 on
centos 6, that occurs when messages are delivered to a mailbox while a
client is setting flags and retrieving existing messages.

This sort of thing is a problem with 2.3.x and earlier unfortunately.

I spent a couple of years rewriting all the internals for 2.4 so that changes 
really are atomic and seen state is managed within the same transaction as 
everything else.

Bron.


Thanks for the response, Bron. I figured as much - I'm imagining some un-initialized bitfield somewhere...

Since you mentioned it ("same transaction as everything else"), I have a quick question about EXPUNGE. If one session has done a SEARCH (say on message id), and another session does expunge and some message is removed at a lesser sequence number, then the first session does STORE to flag that message based on the sequence number returned by the SEARCH (say \Deleted), is that protected by a transaction or is there a race condition in this scenario.

--
Thanks,
David Mansfield,
Cobite, INC.

Reply via email to