I will have a look through the code and update everything to be protected by
the right configuration checks!

Bron.

On Wed, Dec 28, 2011, at 10:35 PM, Wesley Craig wrote:
> The short answer is that "kick_mupdate()" makes no sense on a backend in the 
> configuration you're talking about.  The long answer is that calls to 
> kick_mupdate() are liberally sprinkled through the code, primarily involving 
> calls that manipulate mailboxes or acls (xfer does both, naturally).  Some of 
> those calls are protected by a configuration check, others by a different 
> configuration check, and some not protected at all.
> 
> kick_mupdate() is supposed to talk to the locally running mupdate (there 
> isn't one running on the backend in your configuration, hence the error) to 
> force a NOOP to be sent the mupdate master.  The NOOP will cause the mupdate 
> master to flush any pending mailbox list updates to the NOOP-ing host -- a 
> frontend.  Backends don't participate in the streaming of mailbox list 
> updates in the standard murder configuration, because (!) the are the source 
> of the mailbox list updates.  Hence no need to check with the mupdate master 
> to see if they have all the right bits.
> 
> :wes
> 
> On 28 Dec 2011, at 13:38, Andrew Morgan wrote:
> > I moved a test mailbox from one cyrus backend (v2.3.16) to another backend 
> > (2.4.13beta1).  The move succeeded with the following log entry on the new 
> > backend:
> > 
> > Dec 28 10:22:20 cyrus-be1 imap[4802]: login: cyrus-be3.onid.oregonstate.edu 
> > [128.193.4.124] cyr_proxy PLAIN User logged in
> > Dec 28 10:22:20 cyrus-be1 imap[4802]: kick_mupdate: can't connect to 
> > target: No such file or directory
> > Dec 28 10:22:20 cyrus-be1 imap[4802]: Index upgrade: user.morgana (10 -> 12)
> > Dec 28 10:22:21 cyrus-be1 imap[4802]: USAGE cyr_proxy user: 0.004000 sys: 
> > 0.028001
> > 
> > The kick_mupdate message comes from the kick_mupdate() function in 
> > imap/mupdate-client.c:
> > 
> >     strlcpy(buf, config_dir, sizeof(buf));
> >     strlcat(buf, FNAME_MUPDATE_TARGET_SOCK, sizeof(buf));
> >     memset((char *)&srvaddr, 0, sizeof(srvaddr));
> >     srvaddr.sun_family = AF_UNIX;
> >     strcpy(srvaddr.sun_path, buf);
> >     len = sizeof(srvaddr.sun_family) + strlen(srvaddr.sun_path) + 1;
> > 
> >     r = connect(s, (struct sockaddr *)&srvaddr, len);
> >     if (r == -1) {
> >         syslog(LOG_ERR, "kick_mupdate: can't connect to target: %m");
> >         goto done;
> >     }
> > 
> > How is this supposed to work?  mupdated is running on another host, so why 
> > is it trying to connect via a unix socket?
> ----
> Cyrus Home Page: http://www.cyrusimap.org/
> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
> 
-- 
  Bron Gondwana
  br...@fastmail.fm

----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/

Reply via email to