> I have 5 machines all running on FreeBSD 4.1, with exim v3.20 and > using BerkeleyDB 3.1.14.
>
> They all have lockfiles (wait-remote_smtp.lockfile, retry.lockfile &
> reject.lockfile) hanging around indefineately.
>
> I have not set "lockfile_timeout", because the default (30m) should be
> adequate.
>
> The lockfiles however are days -- even weeks old.
Why do you ask, do you have deadlocked processes?
If not, then everything is fine and there is nothing to worry about.
Exim's uses two ways of locking: mailbox locking, which is configurable,
and db locking, which always uses blocking locks and has a compile-time
timeout. Exim does not use fcntl() locks on the database file, because
for some reason people must have found that it does not work reliably,
so it creates dummy files, one for each database, and locks those using
fcntl(). Don't confuse those files with "lock files" as known by BSD
mailbox locks, where the existance of a file serves as lock.
I know this, because I was looking at the code to find that Exim 3.20
does everything right and it is Linux 2.4.0 ramfs that is horribly broken.
What I wonder about is if anybody ever tried to measure the time spent
waiting for locks and the time spent inside those locks to have an idea
about lock contention. Unfortunately, like many other profiling issues,
Exim's design without a central process makes it hard to aggregate values
in core and write them out to disk every now and then. By now I think
there should be an optional profiling daemon, contacted via a domain
socket, to collect such stats.