[erlang-bugs] Segmentation fault when running HIPE-compilled code

Mikael Pettersson mikpe@REDACTED
Thu Jan 15 09:53:57 CET 2009


Sergey S writes:
 > Hello.
 > 
 > While I was playing with +native option, I run into a bug in HIPE
 > which leads to segmentation fault.
 > 
 > To reproduce the bug just compile the code below using HIPE and run
 > crash:start/0. Your will see the following:
 > 
 > Erlang (BEAM) emulator version 5.6.5 [source] [smp:2]
 > [async-threads:0] [hipe] [kernel-poll:false]
 > 
 > Eshell V5.6.5  (abort with ^G)
 > 1> crash:start().
 > # This message will be printed only once when compiled with +native
 > Segmentation fault
 > 
 > Here is the code (don't look for intention of this example, it has not
 > got that):
 > 
 > %---------------------------------------------------
 > -module(crash).
 > -export([start/0]).
 > 
 > start() ->
 >     spawn(fun() -> init() end).
 > 
 > init() ->
 >     repeat(10, fun() -> void end),
 >     receive after infinity -> ok end.
 > 
 > repeat(0, _) ->
 >     ok;
 > repeat(N, Fun) ->
 >     io:format("# This message will be printed only once when compiled
 > with +native~n"),
 >     Fun(),
 >     repeat(N - 1, Fun). % <------ It never will be called if you use HIPE
 > %---------------------------------------------------
 > 
 > The same code compiled without +native flag works well to me. I'm
 > using Erlang R12B5.

Please give us some information about your system:
1. Which CPU type? Is it 32- or 64-bit?
2. Which C compiler and version?
3. Which OS / distribution / version?



More information about the erlang-bugs mailing list