LMTPD sockets

David Korpiewski davidk at cs.umass.edu
Thu Aug 17 16:50:11 EDT 2006


This is building on my original discussion about simultaneous access:

We are having a problem where two servers accessing the same SAN now 
give us a LMTPD error because they are stomping on each other's sockets 
(they share the same database on the SAN with the same socket 
directory).  Is there any way to prevent this from happening or easily 
configuring them not to not to use the same sockets?

I've gone into cyrus.conf and changed the socket directory listed for 
lmtpd but for some reason the deliver still fails on accessing the 
original socket directory.   So somewhere else in the system it is 
trying to access configdirectory/socket/lmtpd.

Thanks for any help
David




Michael Menge wrote:
> This subject has also been on this list a few weeks ago. Look for the 
> subject
> 
> "High availability email server"
> 
> Quoting Wesley Craig <wes at umich.edu>:
> 
>> On 16 Aug 2006, at 14:52, David Korpiewski wrote:
>>> My director had us go back to using our Macs to try to build a  
>>> failover cluster.   We were able to set up two mail servers sharing 
>>>  the same backend XSAN.   We put our database for cyrus on the XSAN 
>>>  and had both mail servers use _the same_ database and the same mail  
>>> store locations.
>>>
>>> So far in limited testing it works flawlessly.  This is very  strange 
>>> to us.  Is cyrus set up to allow multiple simultaneous  accesses to 
>>> its database without corruption or are we just lucky to  not have 
>>> corrupted the database yet?
>>>
>>> This is cyrus 2.2.12 running on two OSX 10.4.7 servers.
>>
>> The main process which updates mailboxes.db etc on a backend server is
>> imapd.  Since multiple imapd's are allowed, as long as your XSAN
>> provides appropriate locking, you are not "just lucky".  See the
>> compile documentation for a discussion of how to select the locking
>> method:
>>
>>         --with-lock=METHOD
>>             Specifies the locking method to use. Currently implemented
>>             locking methods are:
>>
>>             flock   flock() locking
>>             fcntl   fcntl() locking
>>
>>             By default, configure uses "fcntl" if the "fcntl()" function
>>             exists, "flock" otherwise.
>>
>>
>> AFAIK, fcntl( ..., F_SETLK*, ...) always locks the whole file, a la
>> flock().  Also, I think I see a bug in master/service.c, where instead
>> of using the locking method specified during compile-time, fcntl() is
>> always used.
>>
>> :wes
>> ----
>> Cyrus Home Page: http://asg.web.cmu.edu/cyrus
>> Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
>> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
> 
> 
> 
> -------------------------------------------------------------------------------- 
> 
> M.Menge                                 Tel.: (49) 7071/29-70316
> Universitaet Tuebingen                  Fax.: (49) 7071/29-5912
> Zentrum fuer Datenverarbeitung          mail: menge at zdv.uni-tuebingen.de
> Waechterstrasse 76
> 72074 Tuebingen
> 
> ----
> Cyrus Home Page: http://asg.web.cmu.edu/cyrus
> Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
> List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

-- 
--------------------------------------------------------
David Korpiewski                     Phone: 413-545-4319
Software Specialist I                Fax:   413-577-2285
Department of Computer Science       ICQ:   7565766
University of Massachusetts Amherst
--------------------------------------------------------



More information about the Info-cyrus mailing list