Erlang shell crash

Raimo Niskanen raimo@REDACTED
Fri Jun 9 10:46:59 CEST 2006


In erts-5.4.8 (R10B-6) there was a fix for larger heap sizes:

    OTP-5596  In the hipe application, there's a new experimental register
              allocator (optimistic coalescing), and the linear scan
              register allocator is now also available on ppc. Plus lots of
              cleanups.

              Minor hybrid heap corrections.

              The maximum size of a heap used to be articially limited so
              that the size of a heap would fit in 28 bits; that limitation
              could cause the emulator to terminate in a garbage collection
              even if there still was available memory. Now the largest
              heap size for a 32 bit CPU is 1,699,221,830 bytes. (Thanks to
              Jesper Wilhelmsson.)

              Also removed the undocumented +H emulator option.

But do you need larger heap sizes or fixing your application?

There is a gotcha concerning the shell history. The shell
keeps a history of commands and results, and since
the shell has references to this data, it is not
garbage collected. Might this be a problem?

Or is it simply so that you have a non-tail recurisive loop
that is eating your memory?

You can use top (the unix command) to see if the server
side emulator grows gradually, or explodes suddenly, 
which size it starts on and so on, and this may give
you some clue.

surindar.shanthi@REDACTED (Surindar Sivanesan) writes:

> I'm using Eralng emulator version is  5.4.3.
> The type of application is load testing with simulator in one PC ( which has
> multiple thread. At that monent we have 200 threads) which sends requests to
> the server in another PC.
> The Shell running as server is collapsed.

Do you mean that the server side shell process is the one that
memory exploded and caused the emulator to crash?

> 
> -with regards,
>  S.Surindar
> 
> 
> On 09 Jun 2006 09:04:31 +0200, Raimo Niskanen <raimo@REDACTED>
> wrote:
> >
> > Well first the standard questions:
> > * What is the Erlang/OTP release, or emulator version
> > erlang:system_info(system_version)?
> > * What is the application, or what kind of application is it?
> >
> > When the emultor starts it pre-calculates the heap sizes
> > to use and puts them in an array. The calculated heap sizes
> > are up to ridiculouosly large sizes, so that if you would
> > need such large heaps you most probably have other problems.
> >
> > You most probably have other problems.
> >
> > Your emulator has allocated 578 Mbytes of memory and had
> > a gigantic process heap for one process. That process
> > must have eaten all memory. The question is if the
> > emulator is leaking memory or if your application
> > allocates memory that can not be reclaimed in a
> > garbage collection?
> >
> > So, more info is needed.
> >
> > And, there has been releases with a wee bit to small
> > pre-calculated heap sizes.
> >
> > Locate the culprit process in the crash dump viewer and
> > try to find out what it is doing. Perhaps look at the
> > call stack. That may give something.
> >
> >
> >
> > surindar.shanthi@REDACTED (Surindar Sivanesan) writes:
> >
> > > Dear all,
> > > I'm running an Erlang application.
> > > After 12 hours, the erlang shell crashes with *Abnormal termination.*
> > > Then i have viewed the Erlang dump in the *Crash dump viewer*.
> > > The crash dump viewer has the following information.
> > >
> > > Slogan*:  no next heap size found: 148185174, offset 0.*
> > > Memory allocated: 606002043 bytes.
> > > Atoms : 7158.
> > > Processes : 703
> > > ETS tables : 45
> > > Funs : 442
> > >
> > > Please give me the reason for this crash.
> > >
> > >
> > > with regards,
> > > S.Surindar
> >
> > --
> >
> > / Raimo Niskanen, Erlang/OTP, Ericsson AB
> >
> 
> 
> 
> -- 
> with regards,
> S.Surindar

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list