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

Reply via email to