cyrus mupdate master and frontend synchronization problem
Vladimir Zorin
vladimir at urtext.ru
Thu Jun 26 12:14:50 EDT 2008
Hi, folks!
I have some strange problem with cyrus-mupdate.
I have three servers, all running cyrus-imapd v2.3.12p2 on FreeBSD 7.0
(though I've tested the same configuration with cyrus v2.2.13 and got
the same behaviour):
The first one, 192.168.7.1, which is configured to be the mupdate
master,
the second one, 192.168.7.2 - configured to be a backend,
and the third one, 192.168.7.3 - a frontend
Everything works quite fine except for the one very annoying thing -
mupdate frontend does not synchronize it's mailboxes database with
mupdate master in real-time. It does synchronize it on start, but when
somebody creates a folders in their mailbox, frontend's mailboxes
database does not reflect this change, until cyrus restarted.
E.g.
on the frontend machine:
----------
#telnet 192.168.7.3 143
Connected to cyr3.poligon.pht.
a01 login vlad vlad
a01 OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID
MUPDATE=mupdate://192.168.7.1/ LOGINDISABLED ACL RIGHTS=kxte QUOTA
MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN
MULTIAPPEND BINARY SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT
THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE SCAN IDLE URLAUTH]
User logged in
a02 list "" "*"
* LIST (\HasChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "INBOX.Mail"
* LIST (\HasNoChildren) "." "INBOX.Sent"
* LIST (\HasNoChildren) "." "INBOX.Trash"
a02 OK Completed (0.000 secs 5 calls)
a03 create INBOX.Foo
a03 OK Completed
a04 list "" "*"
* LIST (\HasChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "INBOX.Mail"
* LIST (\HasNoChildren) "." "INBOX.Sent"
* LIST (\HasNoChildren) "." "INBOX.Trash"
a04 OK Completed (0.000 secs 5 calls)
a05 logout
-------------
but the folder was actually created and does exist, I can see it on the
backend:
---------------------------
#telnet 192.168.7.2 143
Trying 192.168.7.2...
Connected to cyr2.poligon.pht.
Escape character is '^]'.
* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID
MUPDATE=mupdate://192.168.7.1/ AUTH=PLAIN AUTH=DIGEST-MD5 AUTH=CRAM-MD5
SASL-IR] cyr2.poligon.pht Cyrus IMAP Murder v2.3.12p2 server ready
a01 login vlad vlad
a01 OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID
MUPDATE=mupdate://192.168.7.1/ LOGINDISABLED ACL RIGHTS=kxte QUOTA
MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN
MULTIAPPEND BINARY SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT
THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE SCAN IDLE URLAUTH]
User logged in
a02 list "" "*"
* LIST (\HasChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "INBOX.Foo"
* LIST (\HasNoChildren) "." "INBOX.Mail"
* LIST (\HasNoChildren) "." "INBOX.Sent"
* LIST (\HasNoChildren) "." "INBOX.Trash"
a02 OK Completed (0.000 secs 6 calls)
------------------------
Only after restarting cyrus on the frontend I get the same response from
LIST "" "*" on the frontend, as on the backend.
I've done a lot of googling but only managed to find that some folks
have faced the same problem in the past and wrote about it, but, alas,
there was no reply nor any solution.
I guess it must be me being extremely silly and missing something very
simple, but I can't find the answer.
Anyone, any clues?
I'm posting my cyrus configs below:
MUPDATE MASTER server config, 192.168.7.1
--------------------------cyrus.conf--------------------
START {
recover cmd="ctl_cyrusdb -r"
}
SERVICES {
mupdate cmd="mupdate -m" listen="192.168.7.1:3905" prefork=5
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=40
delprune cmd="cyr_expire -E 3" at=0400
tlsprune cmd="tls_prune" at=0400
}
-------------------------------END--------------------
----------------------------imapd.conf------------------
configdirectory: /var/imap
defaultpartition: fictive
partition-fictive: /var/imap/spool
admins: cyrus frontend1 backend1 backend2 murder
allowusermoves: 1
allowplaintext: 1
reject8bit: no
tlscache_db: skiplist
sasl_pwcheck_method: auxprop
sasl_mech_list: cram-md5 digest-md5 plain starttls
---------------------------END--------------------------
MUPDATE BACKEND server config, 192.168.7.2
-----------------------cyrus.conf------------------------
START {
recover cmd="ctl_cyrusdb -r"
mupdatepush cmd="ctl_mboxlist -m"
}
SERVICES {
imap cmd="imapd" listen="192.168.7.2:imap" prefork=2
pop3 cmd="pop3d" listen="192.168.7.2:pop3" prefork=2
lmtp cmd="lmtpd" listen="192.168.7.2:lmtp" prefork=2
lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=2
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=40
delprune cmd="ctl_deliver -E 3" at=0400
}
------------------------------END-------------------------
-------------------------imapd.conf----------------------------
configdirectory: /var/imap
defaultpartition: default
partition-default: /var/imap/spool
allowplaintext: yes
allowusermoves: 1
admins: cyrus murder
proxyservers: murder
reject8bit: no
sasl_pwcheck_method: auxprop
sasl_auto_transition: no
sasl_mech_list: cram-md5 digest-md5 plain starttls
mupdate_server: 192.168.7.1
mupdate_port: 3905
mupdate_username: backend1
mupdate_authname: backend1
mupdate_password: backend1pass
proxy_authname: murder
proxy_password: murderpass
-----------------------------END--------------------------
MUPDATE FRONTEND server config, 192.168.7.3
---------------------cyrus.conf---------------------------
START {
recover cmd="ctl_cyrusdb -r"
}
SERVICES {
mupdate cmd="/usr/local/cyrus/bin/mupdate" listen=3905 prefork=2
imap cmd="proxyd" listen="imap" prefork=1
pop3 cmd="pop3d" listen="pop3" prefork=1
}
EVENTS {
checkpoint cmd="ctl_cyrusdb -c" period=40
delprune cmd="cyr_expire -E 3" at=0400
tlsprune cmd="tls_prune" at=0400
}
----------------------------END--------------------------
-----------------------imapd.conf--------------------
configdirectory: /var/imap
defaultpartition: default
partition-default: /var/imap/spool
admins: cyrus backend1 murder
mupdate_server: 192.168.7.1
mupdate_port: 3905
mupdate_retry_delay: 5
mupdate_authname: frontend1
mupdate_password: frontend1pass
proxy_authname: murder
proxy_password: murderpass
allowplaintext: 1
allowusermoves: 1
reject8bit: no
sasl_auto_transition: no
sasl_pwcheck_method: auxprop
sasl_mech_list: cram-md5 digest-md5 plain starttls
-------------------------END---------------------------
-----
Best regards, Vladimir Zorin
More information about the Info-cyrus
mailing list