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 ------------------------------------------------------------------