On Mon, 28 Jul 2003, Schramm, Dominik wrote:
> > This affects how it sets up listening. Looks like something is getting
> > overwritten.
> >
> What do you mean by "something"?
Some of the code. At least, that's what "Illegal instruction" suggests
to me.
> I must admin that I tweaked some directory permissions just today.
>
> I use the following directories:
> the pid file path is not given, so exim should write its pid to its spool directory,
> which looks like this:
> drwxr-x--- 5 mail mail 4096 Jul 27 18:49 .
> drwxr-xr-x 18 root root 4096 Jul 27 20:41 ..
> drwxr-x--- 2 mail mail 4096 Jul 27 22:18 db
> drwxr-x--- 2 mail mail 4096 Jul 28 20:53 input
> drwxr-x--- 2 mail mail 4096 Jul 27 22:18 msglog
>
> It doesn't write its pid there.
> It is not writeable for root, but this shouldn't be a problem, or could it?
Yes, is could. The Exim daemon writes its pid file while it is still
root, because on some systems, all the pid files for all the daemons are
kept in the same directory (/var/pids or something), which is only
accessible by root.
However, failure to open the pid file shouldn't cause a crash. When
debugging it turned on, there should be a line either saying it wrote
the pid file, or saying that it couldn't. Neither of these lines is
present in your debug data, so it doesn't look as if it got that far.
(In fact, there are plenty of earlier debug lines that should appear
first.)
To track down the crashing problem, I think you will have to add more
debugging lines to the daemon.c module, to find out exactly where it is
crashing. The function of interest is called debug_go(), and starts
around line 656. If you insert lines like
debug_printf("Here 1\n");
...
debug_printf("Here 2\n");
and then run again with -d (no need for +all), it might give us a clue
as to where the problem is occurring.
--
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