Quanah,

If not, try turning it on: it makes SpamAssassin run in a forked
subprocess, which takes more memory, but isolates catastrophic failures
in SpamAssassin from taking down the amavisd process.

Ok, I don't currently do that but can give it a try.

But first check for any process crashes in system's log.

Another option to try when there is a suspicion that a perl
process may be crashing is to add a line:

  use sigtrap qw(stack-trace BUS SEGV EMT FPE ILL SYS);

somewhere near the beginning of the amavisd file, perhaps
just before the first 'use strict'.  (or use 2.9.0,
which already contains this line).  Then start amavisd from
a command line and prevent it from daemonizing. This way
the STDERR will stay connected to the terminal, and any
catastrophic signals captured by the sigtrap pragma will
cause a perl's stack trace to be written to stderr.
Like this:

  # amavisd foreground

or

  # amavisd foreground >err.log 2>&1 &


Is your perl compiled with threads support?
SA 3.4.0, perl5 (revision 5 version 10 subversion 1)
Yes: -Duseithreads

Thanks.

  Mark

Reply via email to