Re: [exim] How to defer delivery if forwardfile is locked?

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Troy Engel
CC: exim-users
Subject: Re: [exim] How to defer delivery if forwardfile is locked?
On Thu, 11 Nov 2004, Troy Engel wrote:

> How do I get exim to stop and wait for my forward file to become available,
> and quit skipping/ignoring it if locked? (if in fact the reason it's being
> skipped is because of NFS lock)


Exim is supposed to detect the case when NFS is not there. Here is an
extract from the code:

---------------------------------------------------------------------
/*************************************************                             
*         Check for existence of file            * 
*************************************************/


/* First of all, we stat the file. If this fails, we try to stat the enclosing
directory, because a file in an unmounted NFS directory will look the same as a
non-existent file. It seems that in Solaris 2.6, statting an entry in an
indirect map that is currently unmounted does not cause the mount to happen.
Instead, dummy data is returned, which defeats the whole point of this test.
However, if a stat() is done on some object inside the directory, such as the
"." back reference to itself, then the mount does occur. If an NFS host is
taken offline, it is possible for the stat() to get stuck until it comes back.
To guard against this, stick a timer round it. If we can't access the "."
inside the directory, try the plain directory, just in case that helps.
---------------------------------------------------------------------


However, this is concerned with NFS mounts, not NFS locks. In fact, I'm
not myself clear what exactly you mean by "NFS lock".

-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book