On Tue, 14 May 2002, Edgar Lovecraft wrote:
> This is definatly an issue with how exim-4.x works. I have been
> doing testing on a RedHat 7.2 server with the mailspool mounted over
> NFS. Exim-3.35 works just fine (just as you found), but any of the
> exim-4.x builds do not.
I would never have expected Exim to work with an NFS spool.
> Message abandoned: spool file directory sync error while receiving
> from exim: Invalid argument
The difference between Exim 3 and Exim 4 is that the latter contains
some special code for improving the integrity of file handling under
Linux. This is the comment in the code:
/* Linux (and maybe other OS?) does not automatically sync a directory after
an operation like rename. We therefore have to do it forcibly ourselves in
these cases, to make sure the file is actually accessible on disk, as opposed
to just the data being accessible from a file in lost+found. Linux also has
O_DIRECTORY, for opening a directory. */
It seems (from your test) that the code to do this does not work when
the directory is NFS mounted. The call to sync the directory fails.
Are there any Linux file system experts out there? Care to comment on
this? Should Exim ignore the "invalid argument" error, and assume that
that it means "directory is NFS-mounted, you can do no more"?
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.