Murder confusion -- two mupdate slaves, lmtpproxyd's always connecting to master
Michael Bacon
baconm at email.unc.edu
Tue Nov 10 12:37:05 EST 2009
I saw this recommendation elsewhere, but I don't understand why one would
set mupdate_config: unified if I'm not, in fact, running a unified murder.
What's the gain here? We have dedicated front-end boxes and dedicated
back-end boxes. Is this just sort of a, "yeah, it's not for that, but it
does what you want anyway" kind of things?
Thanks,
-Michael
--On November 10, 2009 12:26:22 PM -0500 Brian Awood <bawood at umich.edu>
wrote:
>
> You can avoid the behavior in your second question by setting
> mupdate_config: unified
> in your proxies imapd.conf. That was a long standing issue with
> murder in a large scale environment with cyrus 2.2.
>
> On Tuesday 10 November 2009 @ 11:51, Michael Bacon wrote:
>> The second one is that the code for lmtpproxyd very explicitly
>> connects to the mupdate master rather than the local slave. I
>> can't really figure out why it would do this, but here are the two
>> relevant snippets from lmtpd.c:
>>
>> This is from service_init:
>>
>> if (config_mupdate_server &&
>> (config_mupdate_config ==
>> IMAP_ENUM_MUPDATE_CONFIG_STANDARD) &&
>> !config_getstring(IMAPOPT_PROXYSERVERS)) {
>> /* proxy only -- talk directly to mupdate master */
>> r = mupdate_connect(config_mupdate_server, NULL, &mhandle,
>> NULL); if (r) {
>> syslog(LOG_ERR, "couldn't connect to MUPDATE server %s:
>> %s", config_mupdate_server, error_message(r)); fatal("error
>> connecting with MUPDATE server", EC_TEMPFAIL); }
>> }
>>
>>
>> and it appears that this runs every time a message delivery is
>> attempted:
>>
>> static int mlookup(const char *name, char **server, char **aclp,
>> void *tid) {
>> int r, type;
>>
>> if (server) *server = NULL;
>>
>> if (mhandle) {
>> /* proxy only, so check the mupdate master */
>> struct mupdate_mailboxdata *mailboxdata;
>>
>> /* find what server we're sending this to */
>> r = mupdate_find(mhandle, name, &mailboxdata);
>>
>> In short, it looks like, unlike proxyd and pop3proxyd, lmtpproxyd
>> never even bothers to check the local mailboxes database, and when
>> it wants an answer, feels the need to go directly to the mupdate
>> master, rather than querying the handy dandy local slave. Is this
>> intentional? Why can't it use the local cache?
>>
>> Thanks much,
>> Michael Bacon
>> UNC Chapel Hill
>> ----
>> Cyrus Home Page: http://cyrusimap.web.cmu.edu/
>> Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
>> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
>
>
>
More information about the Info-cyrus
mailing list