JDK-7042153 : guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs21,7
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,solaris_nevada
  • CPU: x86
  • Submitted: 2011-05-05
  • Updated: 2014-04-07
  • Resolved: 2011-07-18
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 6 JDK 7 Other
6u81Fixed 7Fixed hs21Fixed
Related Reports
Duplicate :  
Relates :  
Description
The JVM dumped core while doing some auto-completion in NetBeans 7.0. Only seen once so far.

Here's what the top section of hs_err_pid says (the full file is attached):

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (c1_Optimizer.cpp:271), pid=20031, tid=7
#  guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp
#
# JRE version: 7.0-b139
# Java VM: Java HotSpot(TM) Client VM (21.0-b09 mixed mode, sharing solaris-x86 )
# Core dump written. Default location: /home/kh160127/core or core.20031
#
# 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 (0x080ee800):  JavaThread "C1 CompilerThread0" daemon [_thread_in_native, id=7, stack(0xfb69f000,0xfb71f000)]

Stack: [0xfb69f000,0xfb71f000],  sp=0xfb71dd70,  free space=507k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x7cc05d]  void VMError::report(outputStream*)+0x8f5
V  [libjvm.so+0x7cd1e6]  void VMError::report_and_die()+0x57a
V  [libjvm.so+0x3f64fc]  void report_vm_error(const char*,int,const char*,const char*)+0x40
V  [libjvm.so+0x336ad2]  Instruction*CE_Eliminator::make_ifop(Instruction*,Instruction::Condition,Instruction*,Instruction*,Instruction*)+0x4ca
V  [libjvm.so+0x17c366]  void CE_Eliminator::block_do(BlockBegin*)+0x58e
V  [libjvm.so+0x17b919]  void BlockBegin::iterate_preorder(boolArray&,BlockClosure*)+0x3d
V  [libjvm.so+0x17bdab]  void BlockBegin::iterate_preorder(boolArray&,BlockClosure*)+0x4cf
V  [libjvm.so+0x17bdab]  void BlockBegin::iterate_preorder(boolArray&,BlockClosure*)+0x4cf
V  [libjvm.so+0x17bdab]  void BlockBegin::iterate_preorder(boolArray&,BlockClosure*)+0x4cf
V  [libjvm.so+0x17bdab]  void BlockBegin::iterate_preorder(boolArray&,BlockClosure*)+0x4cf
V  [libjvm.so+0x17bdab]  void BlockBegin::iterate_preorder(boolArray&,BlockClosure*)+0x4cf
V  [libjvm.so+0x17bdab]  void BlockBegin::iterate_preorder(boolArray&,BlockClosure*)+0x4cf
V  [libjvm.so+0x17b8b0]  void BlockBegin::iterate_preorder(BlockClosure*)+0x564
V  [libjvm.so+0x17b342]  void IR::iterate_preorder(BlockClosure*)+0x2a
V  [libjvm.so+0x17b2e5]  void Optimizer::eliminate_conditional_expressions()+0x41
V  [libjvm.so+0x17b273]  void IR::optimize()+0x6b
V  [libjvm.so+0x283eaf]  Compilation::Compilation(AbstractCompiler*,ciEnv*,ciMethod*,int,BufferBlob*)+0x483
V  [libjvm.so+0x1602f6]  void Compiler::compile_method(ciEnv*,ciMethod*,int)+0x13a
V  [libjvm.so+0x15aef7]  void CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb1b
V  [libjvm.so+0x150dbf]  void CompileBroker::compiler_thread_loop()+0xa23
V  [libjvm.so+0x150393]  void compiler_thread_entry(JavaThread*,Thread*)+0x1b
V  [libjvm.so+0x13309f]  void JavaThread::run()+0x2ff
V  [libjvm.so+0x6accf0]  java_start+0x4c8
C  [libc.so.1+0xbb2cc]  _thrp_setup+0x9d
C  [libc.so.1+0xbb570]  _lwp_start+0x0


Current CompileTask:
C1:87306808 12924             org.netbeans.api.java.source.SourceUtils::resolveImport (676 bytes)

Comments
EVALUATION The problem occurs when we try to fold an If that has arguments of a condition that are constants of an object type and are not loaded.
06-05-2011