Thu, 15 Feb 2007 (12:44 -0000 UTC) Nigel Horne wrote:

robert delius royar wrote:
System: FreeBSD 4.7-RELEASE-p28 i386
Sendmail: 8.13.8
Milters: spamassassin_milter (C based)
          smf-grey
          clamav-milter 0.90

With the latest version of clamav-milter, all incoming mail is failing
with a temp fail 451 error.  In the log files I see
  Milter (clmilter): timeout before data read
  Milter (clmilter): to error state
for each message after about 4 minutes waiting, the timeout set in
sendmail.mc:
INPUT_MAIL_FILTER(`clmilter',`S=unix:/var/run/clamav/clmilter.sock, F=T, T=S:4m;R:4m')

I start the milter with
/usr/local/sbin/clamav-milter -lHq --dont-wait --max-children 12 -T 0 local:/var/run/clamav/clmilter.sock

Version 0.88.7 of the milter works fine.  I have tried various timeout
settings, but I believe the problem is beyond my user-level ability to diagnose without suggestions.

Any suggestions would be appreciated.

Clamd takes longer to start in 0.90 than 0.88, you need to ensure that
your startup script allows for this - see .../contrib/init/RedHat/clamav-milter, whilst that script is for Linux, the same change will be needed for all platforms.

I forgot to update the startup scripts for the other O/S's, sorry, however on
the other hand no-one noticed it during the RC stage and reported it.

I am not sure I understand the reference to clamd startup. I do not use the '-e' option to clamav-milter, so I am depending on the milter to work on its own. I understood from the former version and from reading the new man page (and looking through the CHANGELOG) that I could still let clamav-milter run "alone" and that it would query the database itself with clamd being resident.

I have the timeout set at 4 minutes, unless the -T option does not work as described (or as it does in 0.88.7). The sendmail milter configuration for clmilter sets the timeout as 4 minutes.

 --timeout=n -T n
        Used  in  conjunction  with max-children. If clamav-milter waits
        for more than n seconds (default 300) it proceeds with scanning.
        Setting  n  to  zero will turn off the timeout and clamav-milter
        will wait indefinitely for the scanning to quit. In practice the
        timeout set by sendmail will then take over.

I tried a few test messages and found that sendmail waited 4 minutes for each message.

I do have one idea but do not want grasp at a straw. When I configured 0.88.7, all I needed was '--enable-milter'. With 0.90 I see a configure error that libmilter cannot be found. The config.log file shows this to be an incorrect error. The test program linking libmilter cannot be built because the directive -lpthread is added, and FreeBSD (at least this server) supplies liblthread.so. It supports -pthread. I did not see this error in previous builds.

The earlier version did not require any thread-related parameters to configure. Perhaps this problem is a thread-related issue. Note that sendmail was compiled with threads enabled (nm shows calls to pthread_* in libmilter.so)

[As an aside, when I did try 0.90 clamd, it quickly ran up to 80% of my CPU time (on a dual CPU system). The only way to kill it was a SIGKILL.]

--
Dr. Robert Delius Royar <[EMAIL PROTECTED]>
Associate Professor of English, Morehead State University

_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://lurker.clamav.net/list/clamav-users.html

Reply via email to