Core dump for OpenJDK 8 on Colibri imx7 1G and BSP 2.7

I’m trying to build an image for the imx7 1G module with OpenJDK 8 and BSP 2.7. We have 512M modules in production that are running Java 8 just fine. After doing some research, I’ve found that past a certain release of OpenJDK 8 (around R81?), I get this core dump trying to use it -

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (os_linux_zero.cpp:254), pid=900, tid=0x76980470
#  fatal error: caught unhandled signal 11
#
# JRE version:  (8.0_162-b12) (build )

Some have said that it’s fixed in later releases of JDK 8, and some think it’s fixed in JDK 9. Anyone run into this and how to fix it?

thanks,
Dave

Dear @buchmeister, could you provide us a little bit more of context?

Did you install OpenJDK8 from an OpenEmbedded build?
Since it is a JRE error, I’m assuming this is happening when using the java command. Does it happen with the javac command as well?

Also take into account that Colibri iMX7 1GB SKU differs from the 512MB version (but shouldn’t affect at this point if you already got the system up and running).

It seems it is a JVM problem in ARM for that version. Take a look at this. A workaround could be try to cross-compile a working version of OpenJDK. If you are using OpenEmbedded, is it possible for you to upgrade from 2.7 to 2.8? (and therefore, upgrade from morty to rocko). Also a quick good check would be to compare openjdk versions in both boards (with java --version)

We have several imx7 512’s in production with images that I built with OE and OpenJDK8:

  • I have device tree mods for SPI ports which transferred over fine to the 1G (they seem similar enough)
  • prod modules use BSP 2.6 and the gcc-linaro V5.2 cross compiler
  • OpenJDK 8 build 25.66-b00 (used the version specified in the Toradex docs for 2.6…META_JAVA=1d820a778c0aa5d1d8bbff9949e77c32a08c8a7b)
  • Toradex easy installer
  • I appended it into the image and built it with OE

All of this works great in production. When we went to the 1G modules, I wanted to migrate to a newer BSP, use the 6.2 cross compiler, and I thought I had to use a newer version of JDK 8.

  • BSP 2.7, same OE build process
  • Toradex easy installer
  • OpenJDK version: (8.0_162-b12) - last attempt

With OpenJDK8 R162, neither the java nor javac commands do anything but core dump. A previous attempt was with something like R93 (?). When I tried to use this version, I could at least run those commands but my application would core dump.

Thanks for the link to that reference. I’ve been doing a lot of research and found this and others that definitely mention a bug in the JDK (apparently fixed in JDK 9?) with workarounds, etc. but nothing worked for me.
I haven’t tried 2.8 yet, but that’s the next step. I’d need the version of OpenJDK that’s known to work with 2.8…

thanks,
Dave

Hi, so if I understand you right you want to update to bsp 2.7 or bsp 2.8 and you are looking for a stable version of OpenJDK for production use. Are there any specific features you need absolutely to have for Java?

Long overdue update:
When I upgraded to BSP 2.8 and rocko, it worked fine. Thanks again for the info.

Dave

Perfect. Thanks for the feedback.