>> I have increased the log level to 5 and filtered the log entries
>> according to the ID number. The result is here:
>> [...]
>> May 29 11:21:45 yellowsrv amavis[29558]: (29558-01) calling SA parse,
>> SA version 3.2.0, 3.002000
>> May 29 11:21:45 yellowsrv amavis[29558]: (29558-01) CALLING SA check
> 
> If there are no further log entries from a process [29558], it
> means the Perl process crashed while excuting SpamAssassin code.

Yes, you are right, Mark !

> Since you are using 2.5.0, here is one quick-fix workaround,
> which at the expense of spawning additional processes,
> decouples amavisd code from the SA code by forking the SA call:
>   $sa_spawned = 1;
> A crashing spawned process will not bring down an amavisd process.

Thanks Mark ! This worked. I have saved one queue entry in order to test 
with it.

> Nevertheless, it is worth investigating what brings down the
> process, especially since you are able to repeat the situation.

Yes, I can repeat it.

> Collect the problem message from a MTA queue and try feeding
> it to a command-line spamassassin, e.g.:
>   su vscan -c 'spamassassin -t -D <0.msg'
> and hope it crashes too.

Yes, it crashes too.

> If it does, you will know what
> SA was doing, and can also repeat the excercise by running
> the command through truss or strace.

I have used strace. Here is the end of the output:

brk(0xb48e000)                          = 0xb48e000
brk(0xb4af000)                          = 0xb4af000
brk(0xb4d0000)                          = 0xb4d0000
brk(0xb4f1000)                          = 0xb4f1000
brk(0xb513000)                          = 0xb513000
write(2, "[3932] dbg: rules: compiled rawb"..., 42) = 42
write(2, "[3932] dbg: rules: ran rawbody r"..., 80) = 80
write(2, "[3932] dbg: rules: ran rawbody r"..., 124) = 124
mremap(0xb7ae5000, 159744, 159744, MREMAP_MAYMOVE) = 0xb7ae5000
mremap(0xb7ae5000, 159744, 241664, MREMAP_MAYMOVE) = 0xb7ae5000
mremap(0xb7ae5000, 241664, 360448, MREMAP_MAYMOVE) = 0xb7ae5000
mremap(0xb7ae5000, 360448, 536576, MREMAP_MAYMOVE) = 0xb7ae5000
mremap(0xb7ae5000, 536576, 536576, MREMAP_MAYMOVE) = 0xb7ae5000
mremap(0xb7ae5000, 536576, 806912, MREMAP_MAYMOVE) = 0xb7ae5000
mremap(0xb7ae5000, 806912, 1208320, MREMAP_MAYMOVE) = 0xb79be000
mremap(0xb79be000, 1208320, 1208320, MREMAP_MAYMOVE) = 0xb79be000
mremap(0xb79be000, 1208320, 1810432, MREMAP_MAYMOVE) = 0xb79be000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

> Possible culprits are Perl modules which bring along some
> C code, such as a berkeley db library or SQL client code
> (Bayes, AWL), certain plugins, potentially also some
> regexps that explode on some degenerate pattern in mail.

The problem occurs while processing regexps.

> What version of Perl do you have?

  v5.8.8 built for i386-linux-thread-multi

Many, many thanks for your help, Mark !

Claude

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
AMaViS-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amavis-user
AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3
AMaViS-HowTos:http://www.amavis.org/howto/

Reply via email to