Mailing List Archive

pipe delivery process timed out
I have been trying to catch the error condition "pipe delivery process
timed out" to prevent it generating an error message but, my preference,
put it back in the spool area for a later re-try or freezing the message.

Setting "ignore_status = true" does not seem to help.

I do not think it has hit the pipe "timeout" with the default of 1hr.

I think it is an internal bsmtp timeout (error message in mainlog)

SMTP data timeout (message abandoned) on connection from local process

and do not see any way of getting round this. There is no
"bsmtp_receive_timeout", only smtp.

The Bsmtp timeout setting must be set at something like 240s as I can see
values for scanning greater than that from spamd log about the same time.

There are other techniques I can apply to minimise the likelyhood of it
ocurring but that I cannot give our User Service people a 100% commitment
that no mail will be bounced.

John Linn


spamcheck:
driver = pipe

command = /opt/exim/bin/exim -oMr spam-scanned -bS
transport_filter = /usr/bin/spamc

bsmtp = all

home_directory = "/var/spool/exim/spamassassin/tmp"
current_directory = "/var/spool/exim/spamassassin/tmp"

# must use a privileged user to set $received_protocol on way back in!
user = mailnull
group = com

return_path_add = false
log_fail_output = true
log_defer_output = true
return_fail_output = true
freeze_exec_fail = true
ignore_status = true
prefix =
suffix =
Re: pipe delivery process timed out [ In reply to ]
On Thu, 23 May 2002, j.linn wrote:

> I have been trying to catch the error condition "pipe delivery process
> timed out" to prevent it generating an error message but, my preference,
> put it back in the spool area for a later re-try or freezing the message.

There is no way to do this. My thinking was that, if it timed out once,
what's the point of trying again?

> I think it is an internal bsmtp timeout (error message in mainlog)
>
> SMTP data timeout (message abandoned) on connection from local process
>
> and do not see any way of getting round this. There is no
> "bsmtp_receive_timeout", only smtp.

You are running exim->pipe->exim so you have control at both ends,
though it can be confusing.

The "pipe delivery process timed out" message is from the delivery
process. This is controlled by the "timeout" option on the pipe
transport (default 1h). It should be possible to see from the logs
whether it really did take an hour to timeout.

> The Bsmtp timeout setting must be set at something like 240s as I can see
> values for scanning greater than that from spamd log about the same time.

The SMTP incoming timeout, set by smtp_receive_timeout, applies to
BSMTP. The default is 5 minutes. The value can be overridden by the -os
option. Oh, hang on, that's Exim 4. Let me look at the Exim 3 manual...

In Exim 3, it's smtp_accept_timeout, and there's no command line
override, I'm afraid.

--
Philip Hazel University of Cambridge Computing Service,
ph10@cus.cam.ac.uk Cambridge, England. Phone: +44 1223 334714.