Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AdoptOpenJDK JDK8 arm32 crashes when running on a 64-bit (aarch64) kernel #319

Closed
sxa opened this issue Jun 16, 2021 · 3 comments
Closed
Labels
bug Something isn't working
Milestone

Comments

@sxa
Copy link
Member

sxa commented Jun 16, 2021

Summary

With the release version of 8u292-b10 (and earlier releases):

pi@pi4build:~ $ jdk8u292-b10-aarch32-20210423-jre/bin/java -version
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0xf5dd20ec, pid=836, tid=0xf5be0460
#
# JRE version:  (8.0_292-b10) (build )
# Java VM: OpenJDK Client VM (25.292-b10 mixed mode linux-aarch32 )
# Problematic frame:
# V  [libjvm.so+0x16f0ec]  ClassFileParser::parse_constant_pool_entries(int, Thread*)+0x47c
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/pi/hs_err_pid836.log
#
# If you would like to submit a bug report, please visit:
#   https://github.com/AdoptOpenJDK/openjdk-support/issues
#
Aborted

Steps to reproduce

Download https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u292-b10/OpenJDK8U-jre_arm_linux_hotspot_8u292b10.tar.gz and try to run it on a system with 32-bit userland and a 64-bit kernel (e.g. Raspberry Pi OS with arm_64bit=1 or as a docker container on aarch64) and run java -version

Expected results

Shows the version

Actual results

Crashes

Triaging info

Java version: Adopt 8u292

What is your operating system and platform?

Happens across multiple ones - Rasperry Pi OS and Ubuntu 16.04, 18.04, 20.04

How did you install Java?

tarball

Did it work before?

When I was running a 32-bit kernel, yes

Did you test with other Java versions?

Version 11 and later seem ok, as does Azul's JDK8

@sxa
Copy link
Member Author

sxa commented Jun 17, 2021

Options:

  • Stop using gcc 7.5 and use the default gcc 5.4.0 which is on the build machine (This would likely leave us susceptible to this failure again)[https://github.com/Cannot make HTTPS request with 8u232-b09-jdk-hotspot on armhf #33]
  • Use an alternate distrubution to build on which has a working gcc 7 as a default (e.g Ubuntu 18.04, would push glibc req up to 2.27 from 2.23)
  • Work towards building/sourcing a working gcc 7.5.0 that runs in the build environment and doesn't result in runtime crashes
  • Debug the core files we get out of the crash and look at whether there is an underlying problem in the code that could be fixed.

NOTE:

@sxa
Copy link
Member Author

sxa commented Jun 17, 2021

Looks like building gcc with the option --with-arch=armv7-a is enough to prevent the crash (or build explicitly with -march=armv7l-a). I'll look at replacing the verison of GCC 7.5.0 deployed to the machines is this new version (And rebuild the image I'm creating as part of adoptium/infrastructure#2201)

@sxa
Copy link
Member Author

sxa commented Jun 18, 2021

Fixed - new compiler will be deployed with the playbooks and have been deployed into the Docker-based build machines already. I'll redploy onto the Scaleway build machines to ensure full coverage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
2 participants