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.