Murder mailbox create race condition

Andrew Morgan morgan at orst.edu
Fri Sep 14 17:45:40 EDT 2012


Bron helped me track it down.  Starting in Cyrus v2.4.13, there is a check 
to see if we're running on a standard Murder backend.  If so, some code to 
update the mailbox list is skipped.

The code was identifying a server as a backend server by checking for the 
presence of the "proxyservers" config variable.  I had proxyservers set on 
my frontends (needlessly).  Once I commented out proxyservers, the race 
condition was gone.

Problem solved, and Bron committed a documentation fix to the imapd.conf 
manpage.

Thanks,
 	Andy

On Wed, 12 Sep 2012, Andrew Morgan wrote:

> 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
> ----
> Cyrus Home Page: http://www.cyrusimap.org/
> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
> To Unsubscribe:
> https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
>


More information about the Info-cyrus mailing list