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

Vernon Schryver vjs@calcite.rhyolite.com
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/DCC.pm, 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 
lib/Mail/SpamAssassin/Plugin/DCC.pm 
does will have to say whether it has any problems such as dangling
alarms or races.


Vernon Schryver    vjs@rhyolite.com



More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.