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

Reply via email to