Bug#396944: running exim4 not found

Marc Haber mh+debian-packages at zugschlus.de
Mon Nov 6 15:11:48 CET 2006


On Mon, Nov 06, 2006 at 05:15:37AM -0700, Bruce Sass wrote:
> On Mon November 6 2006 04:32, Marc Haber wrote:
> > Now, kill all running exims manually,
> 
> Do you mean with "killall" (leaving a stale pidfile in /var/run/exim4),
> or "/etc/init.d/exim4 stop"?

Just killing them. The stale pidfile should be cleaned up automatically.

btw, I advise against using killall just for the case you have to work
on Solaris some time (where killall does do what the name says,
unconditionally). I have resorted to using kill $(pidof exim4) which
is trapless.

> I have confirmed that rm-ing the pidfile and reinstalling exim4-daemon-light
> results in a paniclog entry, which is what I saw with the last upgrade...

That is expected. If you remove the pidfile, the daemon is not being
killed since the init script is not aware of a daemon still running.
Manually removing a pidfile belonging to a still-active daemon is
sabotage.

> root at onegee:~# rm /var/run/exim4/exim.pid
> root at onegee:~# apt-get --reinstall install exim4-daemon-light
> Stopping MTA:.

See, that is not stopping the daeon that was already running.

> Unpacking replacement exim4-daemon-light ...
> Setting up exim4-daemon-light (4.63-10) ...
> Starting MTA: exim4.

And this is starting a second one, which cannot bind to the port since
the port is still taken by the not stopped daemon.

> root at onegee:~# killall exim4
> 
> ...leaving me with no daemon and no pidfile.
> 
> > start one again, and then invoke start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid
> > --oknodo --retry 30 --exec /usr/sbin/exim4 and see whether the daemon
> > stops, and/or the pid file still exists.
> >
> > An strace -f of that start-stop-daemon issue would be great as well.
> 
> root at onegee:~# /etc/init.d/exim4 start
> Starting MTA: exim4.
> [daemon running and pidfile exists]
> root at onegee:~# strace -f start-stop-daemon --stop --pidfile /var/run/exim4/exim.pid --oknodo --retry 30 --exec /usr/sbin/exim4

Did you verify that there was indeed a pidfile with contents belonging
to the actually running daemon?

<snippage>

> mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa7e4f000
> read(3, "17741\n", 131072)              = 6
> readlink("/proc/17741/exe", 0xafeb6930, 256) = -1 ENOENT (No such file or directory)

as this says that there was no process with that pid.

Stupid question: /proc is mounted?

If /proc is mounted, please go through the kill - start - trace
motions again, and immediately afterwards do a ls -al /proc/<pid> with
<pid> being the pid of the still running exim process.

> close(3)                                = 0
> munmap(0xa7e4f000, 131072)              = 0
> exit_group(0)                           = ?
> Process 17873 detached
> root at onegee:~# ps aux|grep exim

Hm. So that time, the attempt to start exim was successful?

I begin to suspect that there is something going on with your system.
Is it possible for me to obtain a login accout to that box (including
temporary root privileges)?

Greetings
Marc

-- 
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Mannheim, Germany  |  lose things."    Winona Ryder | Fon: *49 621 72739834
Nordisch by Nature |  How to make an American Quilt | Fax: *49 621 72739835




More information about the Pkg-exim4-maintainers mailing list