On Wed, 14 Apr 2004, Tamas TEVESZ wrote:
> On Wed, 14 Apr 2004, A. Wik wrote:
>
> > Yes, I asked nearly the same question. What I'd like to know
> > is if there's any logic to this behaviour, or if it's a bug.
> > It doesn't (thank goodness) happen every time a connection
> > attempt times out.
>
> that has been discussed before; it's most probably a bug, likely to be
> a leftover alarm() somewhere. its pretty easy to work around it,
> though - just set auto_thaw < timeout_frozen_after (and have some
> queue runners running the queue, every now and then) . it rarely ever
> happens twice to the same message on my lightly loaded boxes.
I patched it as follows and recompiled:
--- ../exim-4.30-virgin/src/deliver.c 2003-12-01 10:15:41.000000000 +0000
+++ src/deliver.c 2004-04-14 02:14:49.000000000 +0000
@@ -1865,7 +1865,8 @@
int msb = (status >> 8) & 255;
int lsb = status & 255;
int code = (msb == 0)? (lsb & 0x7f) : msb;
- if (msb != 0 || (code != SIGTERM && code != SIGKILL && code != SIGQUIT))
+ if (msb != 0 || (code != SIGTERM && code != SIGKILL && code != SIGQUIT &&
+ code != SIGALRM))
addr->special_action = SPECIAL_FREEZE;
log_write(0, LOG_MAIN|LOG_PANIC, "%s transport process returned non-zero "
"status 0x%04x: %s %d",
-aw