JDK-8027632 : assert(xtype->klass_is_exact()) failed: Should be exact at graphKit.cpp
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs25
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-10-31
  • Updated: 2013-11-22
  • Resolved: 2013-11-12
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 Other Other
8Fixed hs25Fixed hs25,port-stage-ppc-aixFixed
Related Reports
Relates :  
Description
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/opt/jprt/T/P1/131603.rwestrel/s/src/share/vm/opto/graphKit.cpp:2768), pid=21688, tid=27
#  assert(xtype->klass_is_exact()) failed: Should be exact
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b112) (build 1.8.0-ea-fastdebug-b112)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b55-internal-201310181316.rwestrel.hotspot-fastdebug mixed mode solaris-amd64 compressed oops)
# Core dump written. Default location: /export/local/aurora/sandbox/results/workDir/java/util/stream/test/org/openjdk/tests/java/util/stream/StreamSpliteratorTest/core or core.21688
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

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

Current thread (0x00000000007d0800):  JavaThread "C2 CompilerThread7" daemon [_thread_in_native, id=27, stack(0xfffffd7fe33e2000,0xfffffd7fe34e2000)]

Stack: [0xfffffd7fe33e2000,0xfffffd7fe34e2000],  sp=0xfffffd7fe34dd640,  free space=1005k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x28aff5c]  void VMError::report(outputStream*)+0x92c
V  [libjvm.so+0x28b1498]  void VMError::report_and_die()+0x56c
V  [libjvm.so+0xfbb9b7]  void report_vm_error(const char*,int,const char*,const char*)+0x55f
V  [libjvm.so+0x13053f0]  Node*GraphKit::record_profiled_receiver_for_speculation(Node*)+0x76c
V  [libjvm.so+0x10cd86c]  void Parse::do_call()+0xb80
V  [libjvm.so+0x23481bb]  void Parse::do_one_bytecode()+0x13b
V  [libjvm.so+0x2317486]  void Parse::do_one_block()+0x56e
V  [libjvm.so+0x2306b38]  void Parse::do_all_blocks()+0x2238
V  [libjvm.so+0x23042d4]  Parse::Parse #Nvariant 1(JVMState*,ciMethod*,float,Parse*)+0xa34
V  [libjvm.so+0xc1b91c]  JVMState*ParseGenerator::generate(JVMState*,Parse*)+0x108
V  [libjvm.so+0xe680c4]  Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool,bool)+0x1510
V  [libjvm.so+0xc19c5b]  void C2Compiler::compile_method(ciEnv*,ciMethod*,int)+0x1b3
V  [libjvm.so+0xe91391]  void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x4e1
V  [libjvm.so+0xe90931]  void CompileBroker::compiler_thread_loop()+0x3c5
V  [libjvm.so+0x27147f9]  void JavaThread::thread_main_inner()+0x521
V  [libjvm.so+0x2713f0f]  void JavaThread::run()+0x84f
V  [libjvm.so+0x2281982]  java_start+0x1ce
C  [libc.so.1+0x121021]  _thrp_setup+0xa5
C  [libc.so.1+0x1212c0]  _lwp_start+0x0


Current CompileTask:
C2:   5381 1580       4       java.util.Spliterators$DoubleArraySpliterator::getComparator (18 bytes)
Comments
Regarding the lack of regression test: this bug was found with a development version of the code for type speculation. The final code is different and the issue doesn't reproduce and cannot reproduce, I think. It's still a bug because profiling is incorrect but its effects are hard to observe with a simple test case.
05-11-2013

When doing profile collection for receiver type at an invokevirtual/invokeinterface, c1 uses the holder of a method as the known class if a single type is known to be possinle. For default methods, the holder of the method may be an interface and the profile collection is wrong.
05-11-2013

ILW=MLH=>P4
31-10-2013

vm_opts: -XX:+UseTypeSpeculation vm_version: 1.8.0 b112 (1.8.0-ea-fastdebug-b112) / 25.0 b55 (25.0-b55-internal-201310181316.rwestrel.hotspot-fastdebug)
31-10-2013