Re: fatal: Out of memory, malloc failed
On Fri, 13 Apr 2007, Alan Larkin wrote:
>
> Its not a huge push Im trying to do here (<about 150Mb) but always malloc fails!
Any huge objects?
Also, it might be interesting to run it under gdb, and put a breakpoint on the "die" function, so that it stops where it runs out of memory. Then. at that point, you can:
- do a "where" in gdb to see what allocation it is (and ask it how big
it was by printing out the value of "size").
It may be something totally uninteresting (just some random object that
happened to push things over the limit), but statistically, malloc
failures tend to happen to big objects, and sometimes just because
somebody needed a huge area that won't fit in the virtual address
space.
- check with "ps" what the size of the process is. Maybe you even just
have some process limit set that causes brk/mmap to return failure
earlier than necessary..
(It can also be interesting to look at /proc/<pid>/maps, in case
there are big mmaps that fill up the VM etc)
Sometimes it's also a good idea to have a swap file. You may not even *need* to actually page, but it gives thew VM layer much more freedom, especially if your distro has set the flags to disable memory "overcommit".
Linus