debian/spamassassin/dccifd: write(MTA socket,XX): Broken pipe

Vernon Schryver
Wed Dec 7 05:25:13 UTC 2005

> From: "Ugo Bellavance" 

> I have SpamAssassin (with MailScanner) version 3.1 and I get many of
> those messages on many servers, low or high volume.  30 times yesterday
> on my server that processes 300 msg/day.
> What is the timeout value that is recommended?  What is the parameter?
> dcc_timeout ?

If my impression from glancing at the SpamAssassin source is correct,
dcc_timeout is 5 seconds in Mail-SpamAssassin-3.1.0.  Judging from
lib/Mail/SpamAssassin/Plugin/, SpamAssassin gets a SIGALRM
dcc_timeout seconds after starting to open the UNIX domain socket to
dccifd to write the mail message to dccifd.

I think that the worst case delay by dccifd-test talking to dccifd is
about 8 seconds.  A few tests with map file pointing to an IP address
that does not answer are consistent with that guess.
Thus, if 10 seconds is not enough, I suspect that something else is going on.

Note that the alarm is set before the socket is opened, so dcc_timeout
must cover any delays dccifd accepting the connection.  If there are many
simultaneous mail messages, I think that can be delayed.  If started
with -d (e.g. by adding -d to DCCIFD_ARGS in /var/dcc/dcc_conf)
dccifd will say how many threads it allows.  For example,
  dccifd[16498]: max_work=200 max_max_work=1837
means that the default without a -j setting is 200 and that on that
particular system -j cannot be larger than 1837 due to system limits
FDs and so forth.

Someone who really understands what that code in 
does will have to say whether it has any problems such as dangling
alarms or races.

Vernon Schryver

More information about the DCC mailing list

Contact by mail or use the form.