[erlang-bugs] ERTS_FP_CHECK_INIT error of HiPE in 18.0-rc1 running on FreeBSD 10.1-STABLE

Mikael Pettersson mikpelinux@REDACTED
Sat Apr 25 12:57:42 CEST 2015


Kenji Rikitake writes:
 > I've seen a massive numbers of error when running a common test on
 > 18.0-rc1 with HiPE as:
 > 
 > ERTS_FP_CHECK_INIT at 0x50e193: detected unhandled FPE at 0x4ad
 > 
 > This didn't happen when HiPE is disabled (--disable-hipe).
 > 
 > I have traced this in the source that this message is sent from
 > erts_fp_check_init_error() in erts/emulator/sys/unix/sys_float.c,
 > highly presumably from
 > hipe_fclearerror_error() in erts/emulator/hipe/hipe_native_bif.c.
 > 
 > The running environment is on FreeBSD amd64 10.1-STABLE #64 r281235,
 > and the kerl compilation options:
 > 
 > export CC=clang CXX=clang CFLAGS="-O3 -fstack-protector" LDFLAGS="-fstack-protector" MAKEFLAGS="-j8"
 > KERL_CONFIGURE_OPTIONS="--disable-native-libs --enable-vm-probes --with-dynamic-trace=dtrace --with-ssl=/usr/local --with-javac --enable-hipe --enable-kernel-poll --with-wx-config=/usr/local/bin/wxgtk2u-2.8-config --without-odbc --enable-threads --enable-sctp --enable-smp-support --disable-silent-rules"
 > 
 > You can check this out by:
 > 
 > git clone https://github.com/jj1bdx/emprng/
 > cd emprng
 > make tests

I'm not able to reproduce any unhandled FPE:s on Linux/x86_64 with 18.0-rc1
configured with --enable-hipe --enable-fp-exceptions.

I strongly suspect a FreeBSD issue wrt FPE:s.  Can you rebuild OTP with
--disable-hipe --enable-fp-exceptions and then repeat your tests?

It would also be helpful if you attached a debugger to beam.smp, put a
breakpoint in erts_fp_check_init_error(), and took a backtrace from the
thread when that breakpoint it hit.  (You can also try to map the PC
value 0x50e193 reported above to the corresponding C function via beam.smp's
symbol table.)

Finally, I find the 0x4ad address suspiciously low.  Is that address range
even mapped in your beam.smp process?  I don't know how to check that on
FreeBSD, but on Linux I would look in /proc/${pid}/maps.

/Mikael



More information about the erlang-bugs mailing list