Open JDK8 fast-debug : crashes on Solaris Sparc T4 machines

Baesken, Matthias matthias.baesken at sap.com
Wed Feb 12 15:48:03 UTC 2014


I noticed when building Open JDK 8 fast-debug with Sun Studio 12 on Solaris Sparc,
the VM crashes early when executed on T4 based machines (both T4 based Solaris Sparc10 and 11 machines);
I cannot see the issue on older Sparc processors or Fujitsu SPARC64.
The  Crashes look like this :


  <maindir>/results/SS12/images/j2sdk-image/bin/java -version
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/jni.cpp:278
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/net/usr.work/d040975/open_jdk/jdk8_2/hotspot/src/share/vm/prims/jni.cpp:278), pid=27252, tid=2
#  guarantee(klass_hash_ok(k, id)) failed: Bug in native code: jfieldID class must match object
#
# JRE version:  (8.0) (build )
# Java VM: OpenJDK 64-Bit Server VM (25.0-b69-fastdebug mixed mode solaris-sparc compressed oops)
# Core dump written. Default location: //core or core.27252
#
# An error report file with more information is saved as:
# //hs_err_pid27252.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#
Current thread is 2
Dumping core ...
Abort (core dumped)

With Stack in the hs_err file  :

---------------  T H R E A D  ---------------

Current thread (0x0000000100111800):  JavaThread "main" [_thread_in_vm, id=2, stack(0xffffffff7e200000,0xffffffff7e300000)]

Stack: [0xffffffff7e200000,0xffffffff7e300000],  sp=0xffffffff7e2fdd50,  free space=1015k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xfc8824]  void VMError::report_and_die()+0x504
V  [libjvm.so+0x66ee70]  void report_vm_error(const char*,int,const char*,const char*)+0x78
V  [libjvm.so+0x925798]  void jfieldIDWorkaround::verify_instance_jfieldID(Klass*,_jfieldID*)+0xa8
V  [libjvm.so+0x8f07a8]  _jfieldID*jfieldIDWorkaround::to_instance_jfieldID(Klass*,int)+0x60
V  [libjvm.so+0x953b8c]  jni_GetFieldID+0x52c
C  [libjava.so+0xe46c]  Java_java_io_FileInputStream_initIDs+0x44
j  java.io.FileInputStream.initIDs()V+-373565320
j  java.io.FileInputStream.initIDs()V+0
j  java.io.FileInputStream.<clinit>()V+0
v  ~StubRoutines::call_stub
V  [libjvm.so+0x8fe0bc]  void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x4e4
V  [libjvm.so+0x82daac]  void InstanceKlass::call_class_initializer_impl(instanceKlassHandle,Thread*)+0x224
V  [libjvm.so+0x82d7f8]  void InstanceKlass::call_class_initializer(Thread*)+0x24
V  [libjvm.so+0x82c260]  void InstanceKlass::initialize_impl(instanceKlassHandle,Thread*)+0xb08
V  [libjvm.so+0x82a82c]  void InstanceKlass::initialize(Thread*)+0x5c
V  [libjvm.so+0x8dad34]  void InterpreterRuntime::_new(JavaThread*,ConstantPool*,int)+0x254
j  java.lang.System.initializeSystemClass()V+37
v  ~StubRoutines::call_stub
V  [libjvm.so+0x8fe0bc]  void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x4e4
V  [libjvm.so+0x8fd31c]  void JavaCalls::call_static(JavaValue*,KlassHandle,Symbol*,Symbol*,JavaCallArguments*,Thread*)+0x104
V  [libjvm.so+0x8fd8bc]  void JavaCalls::call_static(JavaValue*,KlassHandle,Symbol*,Symbol*,Thread*)+0x64
V  [libjvm.so+0xf27f80]  void call_initializeSystemClass(Thread*)+0x80
V  [libjvm.so+0xf3317c]  int Threads::create_vm(JavaVMInitArgs*,bool*)+0x76c
V  [libjvm.so+0x9772ec]  JNI_CreateJavaVM+0xe4
C  [libjli.so+0x7d9c]  InitializeJVM+0x104
C  [libjli.so+0x6220]  JavaMain+0x68



When building with Sun Studio 12u1 (instead of 12) the crash does not occur, see :

  <maindir>/results/SS12u1/images/j2sdk-image/bin/java -version
openjdk version "1.8.0-internal-fastdebug"
OpenJDK Runtime Environment (build 1.8.0-internal-fastdebug-d040975_2014_02_12_15_29-b00)
OpenJDK 64-Bit Server VM (build 25.0-b69-fastdebug, mixed mode)


Is this a known issue with SunStudio12 build results on T4 Processors ?

I changed the used optimization flags in the fast-debug build from  -xO4  to -xO2 and the problem disappeared.
Could this  be done in the configuration  when SunStudio 12 is detected ?

Thanks, Matthias



More information about the build-dev mailing list