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/