bhc+ at pitt.edu
Fri Apr 15 09:42:09 EDT 2005
> Hi c
> ould you give me just some more explaination of what is the stage./
> files used during LMTP delivery have unique filenames
> so if i underdstand what you saying. if the stage./ files used during
> LMTP delivery is the same for all the node of the cluster share the
> same SAN then there won't be any problem
In imap/append.c (at least in our Cyrus version) there is a function
called append_newstage, and lmtpd uses this routine for mail delivery.
The name of the temporary file being created in this code is of the form
<pid>-<timestampseconds> which of course is not guaranteed to be unique
across the cluster, so we just changed this code to create a filename
of the form <clusternode>-<pid>-<timestampseconds>.
(If you truss/strace lmtpd during message delivery, you'll understand
this right away)
Probably what should also happen in the std. code if some cluster
support is officially added is that master should use some exclusive
locking mechanism when it starts, to guarantee that a sysadmin's typo in
imapd.conf won't allow cluster nodes to share a node ID, if the
technique of configuring a cluster node ID in imapd.conf is used. And
probably also, a node ID should always be required (which our code does).
When we get a chance, we're going to talk to Derrick about getting some
cluster support into the std. code.
University of Pittsburgh/CSSD
bhc at pitt.edu
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
More information about the Info-cyrus