Good evening,
version:
libmilter - sendmail-8.14.2
clamav-milter - clamav-0.91.2
If you configure libmilter library with using poll() rather than
select() and use workers pool you might hit problem related with locking
up your clamav-milter.
To reproduce this kind of behavior you should ran clamav-milter in 32
bit mode, lower max-children and set timeout to some rather high value.
When number of simultaneous connections exceed max children then every
new connection will equal one thread. Going step further, when threads
allocate all virtual memory available for clamav-milter workers from
libmilter will not have space to execute (clamav-milter: LAUNCH_WORKER
error: Cannot allocate memory).
Daemon clamav-milter will not answer with temporary error but will
keep going with blocking threads/connections.
How to solve this kind of problem? Does not clamav-milter is prepare for
workers from libmilter?
Most interesing is how to limit clamav-milter's resource based on thre-
ads. In described situation number of threads are not equal number of
connections, limiting it with dont-wait threads is not a good idea.
Maybe there is a way to limit numbers of threads that workers can
consume?
Best regards,
Ernest Wypierowski
_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://lurker.clamav.net/list/clamav-users.html