[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