[Exim] 4.10 exiwhat causing panic - Cannot open process log …

Top Page
Delete this message
Reply to this message
Author: Richard.Hall
Date:  
To: exim-users
Subject: [Exim] 4.10 exiwhat causing panic - Cannot open process log file
Greetings,

Environment: Solaris 8, Exim 4.10, Exiscan 4.10-16

I've failed to find this in the list archives.

Most of the time, exiwhat works just fine (AFAICT). However, occasionally
it causes one (or possibly more) of the exim processes to panic. When it
happens to be the listening daemon, this is somewhat embarrassing, though
not until several hours later :-(

Some examples from the paniclog (wrapped for readability) :-

2002-10-17 22:21:18 Cannot open process log file
"/var/spool/exim/spool/exim-process.info":
Permission denied: euid=49992 egid=49992
2002-10-27 11:01:27 Cannot open process log file
"/var/spool/exim/spool/exim-process.info":
Permission denied: euid=49992 egid=49992
2002-10-27 12:04:10 Cannot open process log file
"/var/spool/exim/spool/exim-process.info":
Permission denied: euid=49992 egid=49992
2002-10-27 12:04:10 184NJU-0000eZ-00 Cannot open process log file
"/var/spool/exim/spool/exim-process.info":
Permission denied: euid=49992 egid=49992
2002-10-27 12:04:14 185ZRv-0006mN-00 Cannot open process log file
"/var/spool/exim/spool/exim-process.info":
Permission denied: euid=49992 egid=49992

User 49992 is exim; group 49992 is exim; exim_user is set to exim.
There are (virtually) no local deliveries on the m/c in question, so no
uids other than exim and root should be involved. The spool directory
permissions are

   drwxr-xr-x   6 exim     exim         512 Oct 29 09:26 spool


and the created file is (normally)

   -rw-r-----   1 exim     exim        4807 Oct 29 09:26 exim-process.info


My _guess_ is that there is some sort of timing/race problem between
different exim processes trying to create and/or open the file. I've
stared at open_log() in log.c, and it seems theoretically possible that
one process with euid=root could create and own the file, and another
process with euid=exim could fail as above before root has time to
chown/chmod the file. However, I don't know enough to know if the
conditions for this could actually happen in practice.

It goes without saying, of course, that the problem never occurs when I
try to truss() things. Which reinforces my suspicion that it is a timing
thing.

Anyone?

TIA,
Richard Hall