Re: [Exim] application bug: exim(1379) has SIGCHLD set to SI…

Pàgina inicial
Delete this message
Reply to this message
Autor: Philip Hazel
Data:  
A: Kerry Seibold
CC: exim-users
Assumpte: Re: [Exim] application bug: exim(1379) has SIGCHLD set to SIG_IGN but calls wait().
On Tue, 1 Jul 2003, Kerry Seibold wrote:

> Hi Guys,
> I've got two RH9 installations, one with exim3 and one with exim4.
>
> Both have similar /var/log/messages recurring entries:
> Jul 1 18:50:04 mailserver kernel: application bug: exim(1379) has SIGCHLD
> set to SIG_IGN but calls wait().
> Jul 1 18:50:04 mailserver kernel: (see the NOTES section of 'man 2 wait').
> Workaround activated.
>
> Can anyone tell me what the cause is, and what the solution is?


This is provoked by some new paranoia in RH9 interacting with some old
paranoia in Exim. :-) I fixed Exim at release 4.14, with this change:

65. When Exim is receiving multiple messages on a single connection, and
    spinning off delivery processess, it sets the SIGCHLD signal handling to
    SIG_IGN, because it doesn't want to wait for these processes. However,
    because on some OS this didn't work, it also has a paranoid call to
    waitpid() in the loop to reap any children that have finished. Some
    versions of Linux now complain (to the system log) about this "illogical"
    call to waitpid(). I have therefore put it inside a conditional
    compilation, and arranged for it to be omitted for Linux.


There were some more reports of this on releases after 4.14, but it
turned out that these were provoked by other things that Exim was
calling that were using subprocesses and doing the same thing.

--
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