[erlang-bugs] Strange Memory Allocation Crash
Björn-Egil Dahlberg
egil@REDACTED
Wed Jul 7 14:11:17 CEST 2010
The error_logger can't consume the info messages you send at the rate
that that tight loop produces them.
erl_crash.dump:
<0.5.0> error_logger Garbing (limited info) 27440736 182452560 7557980
Regards,
Björn-Egil
Erlang/OTP
On 2010-07-07 13:27, tech@REDACTED wrote:
>
>
> While try to do a quick check on which floats need to be rounded before
> trunking them to get valid results, I was able to crash the Erlang VM. I find
> it a bit strange as it happened rather quickly into something that I thought
> shouldn't be that intensive. I have tried this twice, and was wondering if
> this could be pointing to something else as a problem.
>
> Machine Info
> daniel@REDACTED:~/sdb/work/gf_olympus/troy/trunk/tmp> uname -a
> Linux greyowl 2.6.31.12-0.2-default #1 SMP 2010-03-16 21:25:39 +0100 x86_64
> x86_64 x86_64 GNU/Linux
> daniel@REDACTED:~/sdb/work/gf_olympus/troy/trunk/tmp> erl --version
> Erlang R14A (erts-5.8) [source] [64-bit] [smp:2:2] [rq:2] [async-threads:0]
> [hipe] [kernel-poll:false]
>
>
> ============== CODE START
>
> -module(itest).
> -export([do/0]).
>
> do() ->
> do(0.0).
>
> do(100.0) ->
> done;
> do(Value) ->
> if trunc(Value * 100) =:= trunc(round(Value * 100)) ->
> do(Value + 0.01);
> true ->
> error_logger:info_msg("Value: ~p~n", [Value]),
> do(Value + 0.01)
> end.
>
> ============== CODE END
>
> The final result. (After 280 iterations of the function the following crash)
>
> =INFO REPORT==== 7-Jul-2010::11:33:07 ===
> Value: 2.7999999999999843
>
> Crash dump was written to: erl_crash.dump
> eheap_alloc: Cannot allocate 20672 bytes of memory (of type "heap").
> Aborted
>
>
> The code is attached
>
> I am a bit at a loss as to where to start troubleshooting this :)
>
More information about the erlang-bugs
mailing list