Hi c-client readers -

We're attempting to replace our existing mail server here with a cluster
of Linux nodes running sendmail/procmail/UW IMAPd.  The Linux nodes use
are attached to shared storage (SAN) and using Sistina's GFS to manage
the locking.

The locking appears to be working just fine - no mailboxes are getting
stepped on, no mail is getting lost.  However, we are running into a
problem where an old stale imapd is running, and new ones can't start
up.  (e.g. someone left their MUA running at the office, now they're at
home trying to check their mail with another MUA.)  The new IMAP client
is able to log in and check their mail, but they're stuck read-only -
they can't get read-write mode like we could when all the imapds were on
the same host.

In searching through the code, I can see that when imapd can't get a RW
lock on the mailbox, it looks for the other imapd's PID and sends the
"kiss-of-death" (SIGUSR2).  The other imapd is supposed to give up the
lock, then the first imapd can get it.  Of course, this doesn't work
when the imapds are on separate hosts.  :-)

So, we see that we have at least 2 options:

- Move to a different mailbox format, one that supports multiple access
(mbx).  Frankly, this scares us, since we have around 40,000 users -
this is going to be a complex enough conversion as it is.

- Alter unix.c and other files to send the kiss-of-death to the actual
host the imapd is running on.  (Anyone done this already?)

Does anyone have any other suggestions about these, or other options we
should consider?  We realize we could do some type of proxy-based or
DNS-based routing of users to specific mail hosts, but we'd like to
avoid that if possible...

-- 
Jim Lawson
University of Vermont


-- 
------------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/c-client-list.html
------------------------------------------------------------------

Reply via email to