troubleshooting an unified config
Jesus Roncero
jesus at mxtelecom.com
Thu Oct 19 11:15:12 EDT 2006
Hi all,
I have an almost running unified-configuration murder installation with 3
machines:
* backbox: backend
* unibox: fronend/backend in unified mode
* mupbox: mupdate master
It all looks like it's fine. when accessing unibox with an imap client, it
serves the mailbox if it is at unibox or proxies it if it's at backbox. So,
the unified config looks like it works, in terms of accessing the mailboxes.
But we are trying to be able to move mailboxes from backbox to unibox and
from unibox to backbox as well. Right now, if I issue a xfer command to
transfer a mailbox from unibox to backbox, it works flawlessly. But not
the other way around. If we try to move from backbox to unibox, it fails
with an error like:
backbox> xfer user.andy at domain.com unibox
xfermailbox: The remote Server(s) denied the operation
Sniffing the connection, there is a connect to the mupdate master as follows:
* AUTH "CRAM-MD5" "DIGEST-MD5" "LOGIN" "PLAIN"
* PARTIAL-UPDATE
* OK MUPDATE "mupbox" "Cyrus Murder" "v2.3.7" "(master)"
A01 AUTHENTICATE "PLAIN" {32+}
PASSWORD=
A01 OK "Authenticated"
X0 DEACTIVATE {23+}
domain.com!user.andy {13+}
backbox!default
X0 OK "done"
X1 ACTIVATE {23+}
domain.com!user.andy {13+}
backbox!default {31+}
andy at domain.com.lrswipkxtea.
X1 OK "done"
and then, there's this connection to unibox' imap port:
* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID MUPDATE=mupdate://mupbox/
AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR] unibox Cyrus IMAP4 (Murder) v2.3.7
server ready
C01 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID MUPDATE=mupdate://mupbox/
AUTH=DIGEST-MD5 AUTH=CRAM-MD5 SASL-IR ACL RIGHTS=kxte QUOTA NAMESPACE UIDPLUS
NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT SORT=MODSEQ
THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE IDLE
URLAUTH
C01 OK Completed
A01 AUTHENTICATE PLAIN PASSWORD==
A01 OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID MUPDATE=mupdate://mupbox/
LOGINDISABLED ACL RIGHTS=kxte QUOTA NAMESPACE UIDPLUS NO_ATOMIC_RENAME
UNSELECT CHILDREN MULTIAPPEND BINARY SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT
THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE IDLE URLAUTH] Success (no
protection)
LC1 LOCALCREATE {23+}
user.andy at domain.com
LC1 NO Mailbox already exists
Q01 LOGOUT
* BYE LOGOUT received
Q01 OK Completed
The thing is that it is failing at the LOCALCREATE command because the mailbox
looks like it *exist* to cyrus, although it is not at that server
(unibox).
Having a look at the boxes, I've noticed that the mailboxes.db files contains
info as follows:
* mupbox[mupdate master] - contains all the mailboxes from backbox and unibox
* unibox(unified) - contains all the mailboxes from backbox and unibox
* backbox - contains only the mailboxes at backbox.
I guess this is the right way to do it because unibox is running an unified
config and it is running a slave mupdate process for its frontend section and
needs to know all this data, right? So then, why is it failing to move the
mailbox?
I think everything is right in terms of permissions. backbox logs in to
unibox as an admin, so there should be no problem with permissions at all,
i guess.
Any ideas? I am running out of them at this point.
Configuration files follows:
backbox -- cyrus.conf
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
START {
recover cmd="ctl_cyrusdb -r"
mupdatepush cmd="ctl_mboxlist -m"
}
# UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES {
# add or remove based on preferences
#mupdate cmd="/opt/cyrus-imapd-2.3.7/bin/mupdate" listen=3905 prefork=1
imap cmd="imapd" listen="imap" prefork=0
imaps cmd="imapd -s" listen="imaps" prefork=0
pop3 cmd="pop3d" listen="pop3" prefork=0
pop3s cmd="pop3d -s" listen="pop3s" prefork=0
sieve cmd="timsieved" listen="sieve" prefork=0
lmtp cmd="lmtpd" listen="lmtp" prefork=0
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=30
}
backbox -- imapd.conf
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
configdirectory: /var/imap
partition-default: /var/spool/imap
sasl_pwcheck_method: auxprop
sasl_mech_list: plain login CRAM-MD5 DIGEST-MD5
sasldb_path: /etc/sasldb2
sieve_admins: cyrus, golan
sievedir: /var/spool/sieve
virtdomains: yes
altnamespace: yes
allowallsubscribe: yes
allowusermoves: 1
admins: golan murder murder at domain.com golan at domain.com
# How to get to mupdate master server
mupdate_username: backend1
mupdate_password: Password
mupdate_server: mupbox
mupdate_port: 2004
mupdate_authname: backend1
mupdate_config: standard
unibox_mechs: PLAIN
proxy_authname: murder
unibox_password: Password
mupbox_mechs: PLAIN
mupbox_password: Password
force_sasl_client_mech: PLAIN
proxyservers: murder
allowpaintext: 1
unibox -- cyrus
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
START {
mboxlist cmd="ctl_cyrusdb -r"
mupdatepush cmd="ctl_mboxlist -m"
}
SERVICES {
mupdate cmd="/home/golan/cyrus-imapd-2.3.7/bin/mupdate" listen=2004
prefork=1
imap cmd="proxyd" listen="imap" prefork=1
pop3 cmd="pop3d" listen="pop3" prefork=0
kpop cmd="pop3d -k" listen="kpop" prefork=0
sieve cmd="timsieved" listen="2000" prefork=1
# fud
fud cmd="fud" listen="fud" prefork=0 proto="udp"
# relay mail correctly
lmtpunix cmd="lmtpproxyd" listen="/home/golan/var/imap/socket/lmtpproxy"
prefork=1
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=5
}
unibox -- imapd.conf
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
configdirectory: /home/golan/var/imap
# DO NOT leave any SPACE at the end of any config setting
# ARGGGGGGGGGGGG
partition-default: /home/golan/var/spool/imap
sasl_pwcheck_method: auxprop
sasl_mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
sasldb_path: /home/golan/etc/sasldb2
force_sasl_client_mech: PLAIN
sieve_admins: cyrus, golan
sievedir: /home/golan/var/spool/sieve
virtdomains: yes
altnamespace: yes
allowallsubscribe: yes
allowusermoves: 1
backbox_mechs: PLAIN
unibox_mechs: PLAIN
# we don't want sieve referrrals
sieve_allowreferrals: 0
admins: golan backend1 murder unified1 golan at domain.com murder at domain.com
# How to get to the mupdate server (this machine)
mupdate_config: unified
mupdate_username: backend1
mupdate_password: Password
mupdate_server: mupbox
mupdate_port: 2004
mupdate_authname: backend1
# How to get to the backends
proxy_authname: murder
backbox_password: Password
unibox_password: Password
proxyservers: murder
syslog_prefix: unified
mupbox -- cyrus
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
START {
mboxlist cmd="ctl_cyrusdb -r"
}
SERVICES {
mupdate cmd="/home/golan/cyrus-imapd-2.3.7-mupdate/bin/mupdate -m"
listen=2004 prefork=1
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=5
}
mupbox -- imapd.conf
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
configdirectory: /home/golan/var/imap
partition-default: /tmp # because it is not used
sasl_pwcheck_method: auxprop
sasl_mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
sasldb_path: /home/golan/etc/sasldb2
force_sasl_client_mech: PLAIN
auxprop_plugin: sasldb
virtdomains: yes
altnamespace: yes
allowallsubscribe: yes
backbox_mechs: PLAIN
unibox_mechs: PLAIN
# we don't want sieve referrrals
sieve_allowreferrals: 0
allowusermoves: 1
admins: golan backend1 backend1 at domain.com # should I use box names here?
proxyservers: murder
proxy_authname: murder
backbox_password: Password
--
Jesus Roncero <jesus at mxtelecom.com>
System Developer
Tel: +44 (0) 845 666 7778
http://www.mxtelecom.com
More information about the Info-cyrus
mailing list