Murder mailbox create race condition

Andrew Morgan morgan at orst.edu
Wed Sep 12 19:29:02 EDT 2012


I recently upgraded our Cyrus murder cluster from v2.4.12 to v2.4.16. 
Since then, I have come across an interesting race condition.  When 
connected to a frontend server, if I create a mailbox and then immediately 
try to select it, I will get an error message.

Frontend IMAP telemetry:

<1347491960<c34 create foo
>1347491960>c34 OK Completed
<1347491960<c35 select foo
>1347491960>c35 NO Mailbox does not exist

if I wait a few seconds, it works:

<1347491990<c37 create foo
>1347491990>c37 OK Completed
<1347491994<c38 select foo
>1347491994>* 0 EXISTS
* 0 RECENT
...


When I connect to a backend server, I cannot reproduce this:

<1347492147<c34 create foo
>1347492147>c34 OK Completed
<1347492147<c35 select foo
>1347492147>* 0 EXISTS
* 0 RECENT
...


Is there some reason the frontend server doesn't know about the newly 
created mailbox for a short period of time?

This error happens everytime I attempt to postpone a message composition 
in Alpine because it creates the "postponed-msgs" mailbox and then 
immediately attempts to Append the message, which fails.

I never saw this happen in v2.4.12.

Thanks,
 	Andy


More information about the Info-cyrus mailing list