> timeout Use: pipe Type: time Default: 1h
>
> If the command fails to complete within this time, it is killed. This normally causes the delivery to fail (but see timeout_defer). A zero time interval specifies no timeout. In order to ensure that any subprocesses created by the command are also killed, Exim makes the initial process a process group leader, and kills the whole process group on a timeout. However, this can be defeated if one of the processes starts a new process group.
Does the transport filter have a separate (shorter) timeout?
I'm getting:
> ... R=spamcheck_router T=spamcheck: Child process of spamcheck transport returned 2 from command: /usr/local/exim/bin/exim (preceded by transport filter timeout while writing to pipe)
10 minutes after receiving the message. To (hopefully) work around this I've
added the last two lines to the spamcheck transport:
spamcheck:
driver = pipe
command = /usr/local/exim/bin/exim -oMr spam-scanned -bS
# use sudo equivalent (w/o logging) to run spamc as the recipient
transport_filter = /usr/local/exim/sbin/sudospamc $local_part
# must use a privileged user to set $received_protocol on the way
# back in!
user = exim
group = exim
log_output = true
return_fail_output = true
use_bsmtp = true
return_path_add = false
message_prefix =
message_suffix =
headers_remove = X-Spam-Flag : X-Spam-Level : X-Spam-Status : \
X-Spam-Checker-Version
timeout_defer
temp_errors = 75:73:2