David Eisner wrote:
When I turn on the embed flag, I have two problems.
1. mimedefang-multiplexor[24534]: WARNING: Something in your Perl
filter appears to have opened a file descriptor outside of any
function....
2. mimedefang-multiplexor[24534]: Slave 0 stderr: dns: sendto()
failed: at
/usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/DnsResolver.pm line 320.
mimedefang-multiplexor[24534]: Slave 0 stderr: dns: select failed: Bad
file descriptor at
/usr/lib/perl5/site_perl/5.8.0/Mail/SpamAssassin/DnsResolver.pm line 347.
last message repeated 8451 times
In case anybody cares, I solved the problem.
Summary: Comment out the following from mimedefang-filter:
# The next lines force SpamAssassin modules to be loaded and rules
# to be compiled immediately. This may improve performance on busy
# mail servers. Comment the lines out if you don't like them.
if ($Features{"SpamAssassin"}) {
spam_assassin_init()->compile_now(1) if defined(spam_assassin_init());
Longer explanation:
When mimedefang-multiplexor runs in embedded mode, mimedefang.pl sources
mimedefang-filter before starting any slaves (this is documented). The
example mimedefang-filter calls spam_assassin_init() (which is in
mimedefang.pl). This, in turn, allocates $SASpamTester, the
Mail::SpamAssassin object. The Mail::SpamAssassin constructor allocates
a resolver:
$self->{resolver} = Mail::SpamAssassin::DnsResolver->new($self);
The problem is that the DnsResolver constructor calls connect_sock,
which opens a socket "to the first nameserver listed /etc/resolv.conf".
This produces error number 1. Later, when the slaves are activated,
this file descriptor gets closed, resulting in error 2.
Maybe a comment in mimedefang-filter should be added, something like:
# The next lines force SpamAssassin modules to be loaded and rules
# to be compiled immediately. This may improve performance on busy
# mail servers. However, it may cause problems when using an embedded
# perl interpreter with some versions of SpamAssassin. Comment the lines
# out if you don't like them.
-David
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID. You may ignore it.
Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang