Re: Beware the unified Cyrus server

2007-03-04 Thread Gary Mills
On Sat, Mar 03, 2007 at 06:36:12PM -0600, Gary Mills wrote:
 If you have:
 1) An existing conventional IMAP server, and
 2) convert it to a unified murder configuration, with
 3) a mupdate slave, and without
 4) a mupdatepush entry in cyrus.conf,
 it will delete all of the local mailboxes from the mailboxes database.

 This seems like very dangerous behavior to me, even though it can be
 avoided by adding the mupdatepush entry in cyrus.conf.  How can the
 mupdate slave be modified to make it safer?

On reflection, I'm convinced that the mupdate slave should not be
doing this.  In a conventional murder, with discrete frontend and
backend servers, it's reasonable to have mailboxes on the backend that
are not known to the mupdate master.  This is a temporary condition,
of course.  The same thing should be permitted in a unified murder.
The mupdate slave should be modified to avoid deleting local mailboxes
in a unified configuration.

There's a similar, but less serious, problem when `ctl_mboxlist -m' is
run on a unified server: it deletes all of the remote mailboxes from
the local mailboxes database.  These are restored when the mupdate
slave starts up.  Again, `ctl_mboxlist -m' should not be doing this
in a unified configuration.  It might be reasonable for a backend
server, although in that case the remote mailboxes should never be
in the local mailboxes database.

-- 
-Gary Mills--Unix Support--U of M Academic Computing and Networking-

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


Beware the unified Cyrus server

2007-03-03 Thread Gary Mills
If you have:
1) An existing conventional IMAP server, and
2) convert it to a unified murder configuration, with
3) a mupdate slave, and without
4) a mupdatepush entry in cyrus.conf,
it will delete all of the local mailboxes from the mailboxes database.

Note that running without the mupdatepush entry is the recommended
way to start a murder node the first time.  This problem doesn't
happen with a murder backend because there's no mupdate slave.  It
also doesn't happen with a murder frontend because there are no local
mailboxes.  It only happens with a unified front/backend server.
It's particularly annoying because there's no easy way to rebuild the
mailboxes database.

This seems like very dangerous behavior to me, even though it can be
avoided by adding the mupdatepush entry in cyrus.conf.  How can the
mupdate slave be modified to make it safer?

Here are some typical log entries of the server startup.  There seem
to be two copies of mupdate running.  One silently deletes the local
mailboxes.  The other tries to, but can't because they're already gone.

Mar  2 19:10:23 setup01 mupdate[2580]: [ID 974332 local6.error] successful 
mupdate connection to castor
Mar  2 19:10:23 setup01 mupdate[2580]: [ID 697712 local6.notice] unready for 
connections
Mar  2 19:10:23 setup01 mupdate[2577]: [ID 974332 local6.error] successful 
mupdate connection to castor
Mar  2 19:10:23 setup01 mupdate[2577]: [ID 697712 local6.notice] unready for 
connections
Mar  2 19:10:23 setup01 mupdate[2577]: [ID 104270 local6.notice] synchronizing 
mailbox list with master mupdate server
Mar  2 19:10:23 setup01 mupdate[2580]: [ID 104270 local6.notice] synchronizing 
mailbox list with master mupdate server
Mar  2 19:10:23 setup01 mupdate[2577]: [ID 538854 local6.error] MUPDATE: can't 
delete mailbox entry 'user.cox'
...
Mar  2 19:10:24 setup01 mupdate[2577]: [ID 538854 local6.error] MUPDATE: can't 
delete mailbox entry 'user.pehn'
Mar  2 19:10:24 setup01 mupdate[2577]: [ID 622122 local6.notice] mailbox list 
synchronization complete
Mar  2 19:10:24 setup01 mupdate[2580]: [ID 538854 local6.error] MUPDATE: can't 
delete mailbox entry 'user.wyatt'
Mar  2 19:10:24 setup01 mupdate[2580]: [ID 622122 local6.notice] mailbox list 
synchronization complete

-- 
-Gary Mills--Unix Support--U of M Academic Computing and Networking-

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