Re: fatal: Out of memory, malloc failed
- From
- Alan Larkin <nobrow@eircom.net>
- Date
- Apr 15, 2007, 19:06 UTC
- Message-ID
- <462277CD.5020609@eircom.net>
- In-Reply-To
- <Pine.LNX.4.64.0704131143130.28042@woody.linux-foundation.org>
Linus Torvalds wrote:
Show 33 quoted lines
> > 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 > >
There were a couple of big files. I removed a 72Mb one (making 47Mb the biggest one left in the project) and made the push and it worked. I later pulled the project down to a different machine, added the 72Mb file back in, and pushed to the server and it worked. So apparently it's a platform specific problem. If anybody's particularly interested I could replicate it under gdb and pass on any info, but if not I wont ... job's done, Im happy.