United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7128352 assert(obj_node == obj) failed
JDK-7128352 : assert(obj_node == obj) failed

Details
Type:
Bug
Submit Date:
2012-01-09
Status:
Closed
Updated Date:
2013-04-24
Project Name:
JDK
Resolved Date:
2012-03-29
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs23,8-pool
Fixed Versions:
hs23 (b10)

Related Reports
Backport:
Backport:
Duplicate:
Relates:
Relates:

Sub Tasks

Description
Regression after 7125896 changes.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/tmp/jprt/P1/213046.vkozlov/source/src/share/vm/opto/locknode.cpp:138), pid=7867, tid=16
#  assert(obj_node == obj) failed: 
#
# JRE version: 7.0_04-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0-b10-internal-201201072130.vkozlov.7125896-fastdebug compiled mode solaris-amd64 )
# Core dump written. Default location: /export/local/57377.JDK7.NIGHTLY.VM_solaris-amd64_javase_server_comp_JT_HS/results/workDir/closed/compiler/5043395/T5043395/core or core.7867
#
# 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 (0x0000000000fc4800):  JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=16, stack(0xfffffd7ffdead000,0xfffffd7ffdfad000)]

Stack: [0xfffffd7ffdead000,0xfffffd7ffdfad000],  sp=0xfffffd7ffdfa31e0,  free space=984k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x2779f04]  void VMError::report(outputStream*)+0x8c8;;  void VMError::report(outputStream*)+0x8c8
V  [libjvm.so+0x277b049]  void VMError::report_and_die()+0x4fd;;  void VMError::report_and_die()+0x4fd
V  [libjvm.so+0xee5033]  void report_vm_error(const char*,int,const char*,const char*)+0x55f;;  void report_vm_error(const char*,int,const char*,const char*)+0x55f
V  [libjvm.so+0x1db0638]  bool BoxLockNode::is_simple_lock_region(LockNode**,Node*)+0x834;;  bool BoxLockNode::is_simple_lock_region(LockNode**,Node*)+0x834
V  [libjvm.so+0xae1c84]  bool LockNode::is_nested_lock_region()+0x80;;  bool LockNode::is_nested_lock_region()+0x80
V  [libjvm.so+0x1e7d2ce]  bool PhaseMacroExpand::expand_macro_nodes()+0x296;;  bool PhaseMacroExpand::expand_macro_nodes()+0x296
V  [libjvm.so+0xd416a4]  void Compile::Optimize()+0x1df0;;  void Compile::Optimize()+0x1df0
V  [libjvm.so+0xd37990]  Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool)+0x14c4;;  Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool)+0x14c4
V  [libjvm.so+0xabb897]  void C2Compiler::compile_method(ciEnv*,ciMethod*,int)+0x16b;;  void C2Compiler::compile_method(ciEnv*,ciMethod*,int)+0x16b
V  [libjvm.so+0xd5fe33]  void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x14cb;;  void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x14cb
V  [libjvm.so+0xd5dd0b]  void CompileBroker::compiler_thread_loop()+0xc8f;;  void CompileBroker::compiler_thread_loop()+0xc8f
V  [libjvm.so+0x2637844]  void JavaThread::thread_main_inner()+0x4d4;;  void JavaThread::thread_main_inner()+0x4d4
V  [libjvm.so+0x2637156]  void JavaThread::run()+0x61e;;  void JavaThread::run()+0x61e
V  [libjvm.so+0x21d5a9a]  java_start+0x6a6;;  java_start+0x6a6
C  [libc.so.1+0x121021]  _thrp_setup+0xa5;;  _thrp_setup+0xa5
C  [libc.so.1+0x1212c0]  _lwp_start+0x0;;  _lwp_start+0x0


Current CompileTask:
C2:   7360 1402   !b  4       PreparedStatement::executeBatch (195 bytes)

                                    

Comments
EVALUATION

Object reference in monitor info is replaced with CheckCastPP of the object:

  138               assert(obj_node == obj,"");
[t@45 l@45]: print obj_node->dump()
 221    CheckCastPP     ===  809  10  [[ 313  459  291  459  291  291  291  313  459  269  269 ]]  #T4CPreparedStatement:NotNull:exact *  Oop:T4CPreparedStatement:NotNull:exact * !orig=[323] !jvms: PreparedStatement::executeBatch @ bci:66
obj_node->dump() = (void)
[t@45 l@45]: print obj->dump() 
 10     Parm    ===  3  [[ 727  182  529  24  24  36  44  182  611  54  53  54  54  54  63  63  83  83  83  611  237  746  237  237  182  221  529  114  114  212  212  233  126  126  126  209  209  237  151  151 ]] Parm0: PreparedStatement:NotNull *  Oop:PreparedStatement:NotNull * !orig=[510] !jvms: PreparedStatement::executeBatch @ bci:-1
                                     
2012-01-09
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/35acf8f0a2e4
                                     
2012-01-11
EVALUATION

Fix: Compare uncasted object nodes.
                                     
2012-01-11
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/35acf8f0a2e4
                                     
2012-01-18
EVALUATION

http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/35acf8f0a2e4
                                     
2012-03-22



Hardware and Software, Engineered to Work Together