On 1 Aug 2018, at 12:12 (-0400), Nick Bright wrote:
spamd[1833]: plugin: eval failed: error closing socket: Bad file
descriptor at
/usr/share/perl5/vendor_perl/Mail/SpamAssassin/DnsResolver.pm line
185, <GEN45208> line 156.
What version of SpamAssassin are you using? Those line numbers make no
sense with the 3.4.1 release or either current development branch. The
last version it seems to make sense for is 3.3.2, which is antique.
This is particularly important because that module makes heavy use of
the Net::DNS module, which has undergone a huge amount of change in
recent years, much of it wise and some of it causing old code to break.
If you are using a modern Net::DNS and an antique SpamAssassin, there
will be trouble.
I'm sometimes receiving this error in my maillog, certainly not for
every message that gets scanned. It seems to come in bursts.
I've been unable to determine what's causing the error though. I'm
running a BIND9 resolver on 127.0.0.1.
When it occurs, the system sees high load average and poor performance
due to iowait caused by the error.
I don't think it's a file descriptor limit, as I've set my system to
512,000 for /proc/sys/fs/file-max and 65535 for ulimits, and "sysctl
fs.file-nr" shows 17,056 out of 512,000 in use.
You are correct. This "file descriptor" is a socket being used for DNS
resolution.
Suggestions? Thoughts?
Upgrade to a modern SpamAssassin. If that's not possible, make sure that
you are using a Net::DNS of a similar age to the antique SA.
--
Bill Cole
b...@scconsult.com or billc...@apache.org
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)
Currently Seeking Steadier Work: https://linkedin.com/in/billcole