I'm close to finishing the upgrade of our Cyrus Murder from v2.2 to v2.3. The backends and mupdate master are running v2.3.11 now, and I've just upgraded one of our frontends to v2.3.11.

I wanted to make sure that our frontends never return a referral to a backend (Pine seems to trigger this a lot). Attached is a patch which adds an option to imapd.conf to disable mailbox referrals. It is based on another person's patch I got from this list.

So far the new frontend seems to be working fine. However, I have noticed a few errors in the logs:

Mar 17 17:00:43 cyrus-fe3 imaps[24038]: Fatal error: Lost connection to 
selected backend
Mar 17 17:02:18 cyrus-fe3 imap[24565]: Fatal error: Lost connection to selected 
backend
Mar 17 17:07:07 cyrus-fe3 imaps[29951]: Fatal error: Lost connection to 
selected backend

This particular message is generated in a few different locations in the code, so I'm not sure of the exact cause. I'll probably modify the code to uniquely indicate which part of the code generated this error.

Has anyone seen this error message before?

        Andy
diff -ur cyrus-imapd-2.3.11/imap/imapd.c cyrus-imapd-2.3.11.new/imap/imapd.c
--- cyrus-imapd-2.3.11/imap/imapd.c	2007-11-27 07:31:28.000000000 -0800
+++ cyrus-imapd-2.3.11.new/imap/imapd.c	2008-03-14 15:57:45.000000000 -0700
@@ -5771,7 +5771,11 @@
 		   struct auth_state *auth_state, int (*proc)(),
 		   void *rock, int force);
 
-    if (listopts & LIST_REMOTE) supports_referrals = !disable_referrals;
+    if (listopts & LIST_REMOTE) {
+	if (!config_getswitch(IMAPOPT_PROXYD_DISABLE_MAILBOX_REFERRALS)) {
+	    supports_referrals = !disable_referrals;
+	}
+    }
 
     /* Ignore the reference argument?
        (the behavior in 1.5.10 & older) */
diff -ur cyrus-imapd-2.3.11/lib/imapoptions cyrus-imapd-2.3.11.new/lib/imapoptions
--- cyrus-imapd-2.3.11/lib/imapoptions	2007-10-18 11:14:48.000000000 -0700
+++ cyrus-imapd-2.3.11.new/lib/imapoptions	2008-03-14 13:45:09.000000000 -0700
@@ -765,6 +765,10 @@
    connections that these referrals would cause, thus resulting in a higher
    authentication load on the respective backend server. */
 
+{ "proxyd_disable_mailbox_referrals", 0, SWITCH }
+/* Set to true to disable the use of mailbox-referrals on the
+   proxy servers. */
+
 { "proxyservers", NULL, STRING }
 /* A list of users and groups that are allowed to proxy for other
    users, separated by spaces.  Any user listed in this will be
----
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

Reply via email to