- All latest perl-module are installed. (Perl 5.6)
- postfix 2.1.5
- spamassassin newest
- clamav (have already change from antivir)
After update to the last amavisd 2.3.3, we have the following Problem:
Normal-Szenario:
================
1. mail is received, and amavisd process is running:
7013 ? S 0:01 amavisd (master)
7033 ? S 0:00 amavisd (ch1-07033-01-idle)
7034 ? S 0:00 amavisd (virgin child)
7035 ? S 0:00 amavisd (virgin child)
7036 ? S 0:00 amavisd (virgin child)
7037 ? S 0:00 amavisd (virgin child)
2. new mail is received, and amavisd goes to the next child process.
7013 ? S 0:01 amavisd (master)
7033 ? S 0:00 amavisd (ch1-avail)
7034 ? S 0:00 amavisd (ch1-07034-01-idle)
7035 ? S 0:00 amavisd (virgin child)
7036 ? S 0:00 amavisd (virgin child)
7037 ? S 0:00 amavisd (virgin child)
3. This goes forward, 1..2 days and after some 100 e-mails we see this
process view (ps -ax |grep amavisd):
7013 ? S 0:01 amavisd (master)
7033 ? S 0:00 amavisd (ch9-avail)
7034 ? S 0:00 amavisd (ch9-avail)
7035 ? S 0:00 amavisd (ch9-avail)
7036 ? S 0:00 amavisd (ch9-avail)
7037 ? S 0:00 amavisd (ch9-avail)
4. some mails laster, the next new mail is receive, the mail log shows:
...Requesting process rundown after 11 tasks (and 7 sessions)
and the amavisd master process tried to create a new (virgin child)
process (max_server is reached).
The new (amavisd virgin child) is created (new pid), but only for 2-3
seconds. After this time the new virgin child crash, and the amavisd
master process tried to recreate a new virgin child.
This goes forward (loops) and burn cpu load to 100 %. Last step = manual
stop amavisd and restart.
see "strace the amavisd master pid" (strace -t -p 7013) on creating new
virgin child process:
09:45:50 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23259
09:45:50 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23258
09:45:50 wait4(-1, 0xbffff6e8, WNOHANG, NULL) = 0
09:45:50 time(NULL) = 1141116350
09:45:50 gettimeofday({1141116350, 968087}, NULL) = 0
09:45:50 fork() = 23260
09:45:51 fork() = 23261
09:45:51 select(0, NULL, NULL, NULL, {10, 0}) = ? ERESTARTNOHAND (To be
restarted)
09:45:51 --- SIGCHLD (Child exited) ---
09:45:51 sigreturn() = ? (mask now [])
09:45:51 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23260
09:45:51 wait4(-1, 0xbffff6e8, WNOHANG, NULL) = 0
09:45:51 time(NULL) = 1141116351
09:45:51 gettimeofday({1141116351, 119877}, NULL) = 0
09:45:51 fork() = 23262
09:45:51 --- SIGCHLD (Child exited) ---
09:45:51 sigreturn() = ? (mask now [])
09:45:51 select(0, NULL, NULL, NULL, {10, 0}) = ? ERESTARTNOHAND (To be
restarted)
09:45:51 --- SIGCHLD (Child exited) ---
09:45:51 sigreturn() = ? (mask now [])
09:45:51 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23262
09:45:51 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23261
09:45:51 wait4(-1, 0xbffff6e8, WNOHANG, NULL) = 0
09:45:51 time(NULL) = 1141116351
09:45:51 gettimeofday({1141116351, 270867}, NULL) = 0
09:45:51 fork() = 23263
09:45:51 --- SIGCHLD (Child exited) ---
09:45:51 sigreturn() = ? (mask now [])
09:45:51 fork() = 23264
09:45:51 select(0, NULL, NULL, NULL, {10, 0}) = ? ERESTARTNOHAND (To be
restarted)
09:45:51 --- SIGCHLD (Child exited) ---
09:45:51 sigreturn() = ? (mask now [])
09:45:51 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23264
09:45:51 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23263
09:45:51 wait4(-1, 0xbffff6e8, WNOHANG, NULL) = 0
09:45:51 time(NULL) = 1141116351
09:45:51 gettimeofday({1141116351, 474127}, NULL) = 0
09:45:51 fork() = 23265
09:45:51 fork() = 23266
09:45:51 select(0, NULL, NULL, NULL, {10, 0}) = ? ERESTARTNOHAND (To be
restarted)
09:45:51 --- SIGCHLD (Child exited) ---
09:45:51 sigreturn() = ? (mask now [])
09:45:51 wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 13], WNOHANG,
NULL) = 23265
09:45:51 wait4(-1, 0xbffff6e8, WNOHANG, NULL) = 0
09:45:51 time(NULL) = 1141116351
09:45:51 gettimeofday({1141116351, 616914}, NULL) = 0
09:45:51 fork() = 23267
...
- I'ts enough free memory available.
- with amavisd-debug no errors or other corrupt process is seen
Has anyone a good tip.
Thanks for any comment.
Siegbert Laukas
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
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/