On Mon, 11 Dec 2000, Armin Hornetz wrote:
> exim -bP exim_user results in:
> exim_user =
>
> so I guess we didn't set a EXIM_UID. I can't really say, as I didn't do
> the build for myself.
OK, that all makes sense. Or rather, it all adds up to a consistent
story. Without EXIM_UID, the daemon will indeed just fork without
re-execution to deliver a message. So we conclude that somehow, the
daemon's memory is getting this rather odd corruption.
Clearly, one way to paper over this problem -- that is, to fix the
symptom rather than the disease -- is to rebuild Exim with a setting
of EXIM_UID (or set exim_user in the runtime config) so that the daemon
runs under some uid other than root. It will then need to re-execute for
each delivery, thereby getting a fresh copy of Exim.
However, the corruption is worrying. There haven't been any other
reports, but then maybe there aren't many sites that run without setting
an Exim user. All I can think of doing is installing some debugging code
in the daemon to check the value periodically, and write to the log if
it's corrupted. However, with this kind of problem, adding code
to Exim may cause the corruption to move to some other byte in memory.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.