[erlang-bugs] Erlang make problem:

Mikael Pettersson mikpe@REDACTED
Fri Feb 29 20:57:37 CET 2008


Stein, Martin writes:
 > I am trying to compile OTP R12B on a 64-bit Suse Linux virtual machine
 > (VMWare). Somewhere in the HIPE compilation erlc crashes with a problem
 > in the OS high resolution timer. Running make again (and again) finally
 > compiles all the files. There seems to be a timing problem somewhere
 > that people also reported when starting "cean erlang", that may be
 > related. I have not found a solution to the problem other than trying
 > again. It finally works but doesn't inspire confidence. 
 > 
 >  
 > 
 > Below some information about the crash. The erl_crash.dump file is
 > available on request (it is quite large).
 > 
 >  
 > 
 > $ uname -a
 > 
 > Linux vowng1 2.6.16.46-0.12-smp #1 SMP Thu May 17 14:00:09 UTC 2007
 > x86_64 x86_64 x86_64 GNU/Linux
 > 
 > $ make
 > 
 > ...
 > 
 > erlc -W  +debug_info +warn_obsolete_guard -I../include -o../ebin
 > hipe_unified_loader.erl
 > 
 > Crash dump was written to: erl_crash.dump
 > 
 > Unexpected behaviour from operating system high resolution timer

That's erts/emulator/beam/erl_time_sup.c:get_tolerant_timeofday()
complaining that sys_gethrtime() returned a value less than it
returned on the very first call to sys_gethrtime().

To me, it implies that sys_gethrtime(), which is gethrtime() on
systems that have it and clock_gettime(CLOCK_MONOTONIC,) on others,
failed to be monotonically increasing. Since this occurs on VMWare,
and since I've personally seen massive clock problems with VMWare
machines in other contexts, I have to assume it's VMWare's fault.

Is that a paravirtualised kernel or a native one? If it's native then
it should probably be started with options to disable whatever source
for high-res time stamps it's using, most likely the TSC.

(HiPE has nothing to do with this, btw.)



More information about the erlang-bugs mailing list