On Mon, Mar 17, 2003 at 03:37:35PM +0000, Philip Hazel wrote:
> What OS are you using? Is is a BSD OS? If so, you may be right about
> item 34. I appear to have fallen in a pit into which I keep repeatedly
> falling, by writing signal() instead of os_non_restarting_signal(). This
> works on Solaris and Linux, so I never notice. (Why, oh, why, are the
> defaults different?)
>
Oops sorry, I forgot to mention it.
It's a Debian GNU/Linux 3 (woody) with kernel 2.4.20-xfs SMP
I wonder if XFS cannot be blamed in this case...
> You can test out this hypothesis by changing line 275 of exim.c from
>
> void (*oldsignal)(int) = signal(SIGALRM, sigalrm_handler);
>
> to
>
> os_non_restarting_signal(SIGALRM, sigalrm_handler);
>
> and changing line 201, which reads
>
> signal(SIGALRM, oldsignal);
>
> to
>
> signal(SIGALRM, SIGIGN);
>
> This is a hack, but I think it will work. (It now doesn't preserve the
> signal setting, it just disables it, but I think that was just
> tidiness.)
>
I won't dare trying that on our production server ;), but I'll do some more
testing and run things in debug mode once I can get my test machine
back.
> --
> Philip Hazel University of Cambridge Computing Service,
> ph10@??? Cambridge, England. Phone: +44 1223 334714.
>
Kind regards,
Chris
--
Christopher Bodenstein - christopher.bodenstein@???
Systems Administrator - Easynet Belgium
Music in the soul can be heard by the universe.
-- Lao Tsu