>> 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/
