Can't allocate?

Mattias Nilsson mattias@REDACTED
Thu Feb 11 09:05:09 CET 1999

> On 11 Feb 1999, Ben Hyde wrote:
> bhyde>Date: 11 Feb 1999 04:06:32 -0000
> bhyde>From: Ben Hyde <bhyde@REDACTED>
> bhyde>To: Erlang Q. <erlang-questions@REDACTED>
> bhyde>Subject: Can't allocate?
> bhyde>
> bhyde>
> bhyde>Any advise about this failure?
> bhyde>
> bhyde>  > gmake ..
> bhyde>  ...
> bhyde>  erlc -W  -bjam   -o../ebin gtk_generic.erl
> bhyde>  Can't allocate 8713236 bytes of memory
> bhyde>  ...
> bhyde>
> bhyde>I seem to have lots of swap space at the point
> bhyde>of failure.  - ben
> The error message means that the address space of the Erlang emulator
> has been exhausted. The current limit in JAM is about 240M. The limit
> has recently been increased i the new and better BEAM system.

Sorry Hakan, but that is not the case. If the emulator runs out of
address space it produces a
message like: 'Got unusable memory block ...', which means it did a
malloc() and got a block above the 256MB (28 bit) limit.

The problem above may be caused by low memory, but could also be caused
by a bug in the emulator, I couldn't say, so I'll keep my mouth shut.
If it happens everytime (or atleast quite often), you should probably
dig into the memory handling stuff of the emulator (yikes!).

> Hopefully the emulator produced a file named erl_crash.dump. It
> should contain useful information about the inner state of the
> emulator just before it gave up.

The erl_crash dump won't help much in most cases. It contains
information about the processes that was running at the point of
failure, and process information about them. Nowadays (in a more recent
emulator), we have stack dumps in the erl-crash.dump file, which helps
some more in some cases. Nothing like a regular core file, but still of
some use.

Best Regards, Mattias Nilsson
Open Telecom Platform, Open Systems, Ericsson

More information about the erlang-questions mailing list