Murder mailbox create race condition
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.
More information about the Info-cyrus