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