Hi, Jason--

On Apr 22, 2010, at 12:33 PM, Jason Evans wrote:
> The failure mode was trimmed before I was CC'ed, so I'm missing background 
> information.

Thanks for the response.  The bug report here:

  https://wwws.clamav.net/bugzilla/show_bug.cgi?id=1941

...contains the useful details, but the ktrace of the point of failure is:

  61805 clamd    CALL  mmap(0,0x9d55d6,PROT_READ,MAP_PRIVATE,0xb,0,0)
  61805 clamd    RET   mmap -1 errno 12 Cannot allocate memory
  61805 clamd    CALL  write(0x2,0xbf5c850c,0x28)
  61805 clamd    GIO   fd 2 wrote 40 bytes
        "LibClamAV Error: cli_pdf: mmap() failed

...which lead to mmap()'s documentation:

     [ENOMEM]           MAP_FIXED was specified and the addr argument was not
                        available.  MAP_ANON was specified and insufficient
                        memory was available.  The system has reached the per-
                        process mmap limit specified in the vm.max_proc_mmap
                        sysctl.

> However, I doubt the number of map entries is the problem.  See procfs(5) on 
> how to mount the proc filesystem, then look at /proc/<pid>/maps to see the VM 
> map.  My observation has been that the total number of entries is quite 
> small, even for large applications (shared libraries tend to contribute more 
> entries than malloc does).
> 
> As an aside, jemalloc maps at least 1 MiB at a time, so it doesn't 
> substantially contribute to the number of map entries even if the application 
> somehow causes bad map fragmentation.

Acknowledged.  Hopefully Royce can use this feedback to gather better 
information.

Regards,
-- 
-Chuck

_______________________________________________
Help us build a comprehensive ClamAV guide: visit http://wiki.clamav.net
http://www.clamav.net/support/ml

Reply via email to