JDK-7129618 : assert(obj_node->eqv_uncast(obj),"");
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8-pool
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2012-01-12
  • Updated: 2012-03-29
  • Resolved: 2012-03-29
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 7 JDK 8 Other
7u4Fixed 8Fixed hs23Fixed
Related Reports
Relates :  
Relates :  
Description
I ran additional tests (nsk.jdi) which failed during Nightly and found that they still failing next assert in BoxLockNode::is_simple_lock_region() even after fix for 7128352:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/tmp/jprt/P1/022523.vkozlov/source/src/share/vm/opto/locknode.cpp:138), pid=8678, tid=16
#  assert(obj_node->eqv_uncast(obj)) failed: 
#
# JRE version: 7.0_04-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0-b10-internal-201201110225.vkozlov.7128352-fastdebug mixed mode solaris-amd64 )
# Core dump written. Default location: /export/local/57451.JDK7.NIGHTLY.VM_solaris-amd64_vm_server_compd_nsk.quick-jdi.testlist/results/ResultDir/object001/core or core.8678
#
# 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 (0x0000000000fe3000):  JavaThread "C2 CompilerThread1" daemon [_thread_in_native, id=16, stack(0xfffffd7ffde7d000,0xfffffd7ffdf7d000)]

Stack: [0xfffffd7ffde7d000,0xfffffd7ffdf7d000],  sp=0xfffffd7ffdf73350,  free space=984k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x277b354]  void VMError::report(outputStream*)+0x8c8;;  void VMError::report(outputStream*)+0x8c8
V  [libjvm.so+0x277c499]  void VMError::report_and_die()+0x4fd;;  void VMError::report_and_die()+0x4fd
V  [libjvm.so+0xee5127]  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+0x1db07ac]  bool BoxLockNode::is_simple_lock_region(LockNode**,Node*)+0x87c;;  bool BoxLockNode::is_simple_lock_region(LockNode**,Node*)+0x87c
V  [libjvm.so+0xae1d68]  bool LockNode::is_nested_lock_region()+0x80;;  bool LockNode::is_nested_lock_region()+0x80
V  [libjvm.so+0x1e7ca60]  void PhaseMacroExpand::eliminate_macro_nodes()+0x2c4;;  void PhaseMacroExpand::eliminate_macro_nodes()+0x2c4
V  [libjvm.so+0xd3ffa7]  void Compile::Optimize()+0x5ff;;  void Compile::Optimize()+0x5ff
V  [libjvm.so+0xd37a84]  Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool)+0x14c4;;  Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool)+0x14c4
V  [libjvm.so+0xabb8a7]  void C2Compiler::compile_method(ciEnv*,ciMethod*,int)+0x16b;;  void C2Compiler::compile_method(ciEnv*,ciMethod*,int)+0x16b
V  [libjvm.so+0xd5ff27]  void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x14cb;;  void CompileBroker::invoke_compiler_on_method(CompileTask*)+0x14cb
V  [libjvm.so+0xd5ddff]  void CompileBroker::compiler_thread_loop()+0xc8f;;  void CompileBroker::compiler_thread_loop()+0xc8f
V  [libjvm.so+0x2638c94]  void JavaThread::thread_main_inner()+0x4d4;;  void JavaThread::thread_main_inner()+0x4d4
V  [libjvm.so+0x26385a6]  void JavaThread::run()+0x61e;;  void JavaThread::run()+0x61e
V  [libjvm.so+0x21d6eee]  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:  27735  571             com.sun.tools.jdi.EventRequestManagerImpl$EventRequestImpl::enable (6 bytes)

Comments
EVALUATION http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/89d0a5d40008
22-03-2012

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

EVALUATION Relax verification and locks elimination checks for new implementation (EliminateNestedLocks). Don't verify safepoints monitor info in is_simple_lock_region() since the referenced node could be different from the locked object. It could be Phi node of different cast nodes which point to this locked object. We assume that no other objects could be referenced in monitor info associated with this BoxLock node because in verified case all associated locks and unlocks are referencing only this one object. New implementation has separate BoxLock node for each locked region so mark all associated locks/unlocks as eliminated in mark_eliminated_box() even if different objects are referenced in one locked region (for example, OSR compilation of nested loop inside locked scope).
14-01-2012

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/89d0a5d40008
14-01-2012

EVALUATION The assert verifies that safepoint references the same object as locks in simple lock region. It failed because SFP references Phi node of different CheckCastPP nodes of that object so uncast() did not help. =====monitor info has different obj===== obj: 3 Start === 3 0 [[ 3 5 6 7 8 9 10 11 ]] #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:com/sun/tools/jdi/EventRequestManagerImpl$EventRequestImpl:NotNull *, 6:bool} 10 Parm === 3 [[ 855 845 21 835 22 22 22 810 800 34 34 789 777 44 44 715 267 252 252 77 77 824 583 543 527 507 483 97 97 465 404 375 125 383 126 126 126 126 350 299 137 137 299 299 148 148 148 167 167 167 299 284 203 203 203 276 276 299 274 224 224 224 274 295 267 267 252 ]] Parm0: com/sun/tools/jdi/EventRequestManagerImpl$EventRequestImpl:NotNull * Oop:com/sun/tools/jdi/EventRequestManagerImpl$EventRequestImpl:NotNull * !jvms: EventRequestManagerImpl$EventRequestImpl::setEnabled @ bci:-1 obj uncast: 10 Parm === 3 [[ 855 845 21 835 22 22 22 810 800 34 34 789 777 44 44 715 267 252 252 77 77 824 583 543 527 507 483 97 97 465 404 375 125 383 126 126 126 126 350 299 137 137 299 299 148 148 148 167 167 167 299 284 203 203 203 276 276 299 274 224 224 224 274 295 267 267 252 ]] Parm0: com/sun/tools/jdi/EventRequestManagerImpl$EventRequestImpl:NotNull * Oop:com/sun/tools/jdi/EventRequestManagerImpl$EventRequestImpl:NotNull * !jvms: EventRequestManagerImpl$EventRequestImpl::setEnabled @ bci:-1 obj_node: 295 CheckCastPP === 891 10 [[ 330 ]] #com/sun/tools/jdi/EventRequestManagerImpl$ModificationWatchpointRequestImpl:NotNull:exact * Oop:com/sun/tools/jdi/EventRequestManagerImpl$ModificationWatchpointRequestImpl:NotNull:exact * !jvms: EventRequestManagerImpl$EventRequestImpl::set @ bci:34 EventRequestManagerImpl$EventRequestImpl::setEnabled @ bci:35 284 CheckCastPP === 895 10 [[ 330 ]] #com/sun/tools/jdi/EventRequestManagerImpl$AccessWatchpointRequestImpl:NotNull:exact * Oop:com/sun/tools/jdi/EventRequestManagerImpl$AccessWatchpointRequestImpl:NotNull:exact * !jvms: EventRequestManagerImpl$EventRequestImpl::set @ bci:34 EventRequestManagerImpl$EventRequestImpl::setEnabled @ bci:35 328 Region === 328 895 891 [[ 328 350 332 330 ]] !jvms: EventRequestManagerImpl$EventRequestImpl::set @ bci:-1 EventRequestManagerImpl$EventRequestImpl::setEnabled @ bci:35 330 Phi === 328 284 295 [[ 767 789 715 337 337 771 771 767 350 350 350 715 715 583 383 383 383 375 375 375 404 404 404 465 465 465 483 483 483 507 507 507 527 527 527 543 543 543 583 583 ]] #com/sun/tools/jdi/EventRequestManagerImpl$WatchpointRequestImpl:NotNull * Oop:com/sun/tools/jdi/EventRequestManagerImpl$WatchpointRequestImpl:NotNull * !orig=[785] !jvms: EventRequestManagerImpl$EventRequestImpl::set @ bci:-1 EventRequestManagerImpl$EventRequestImpl::setEnabled @ bci:35 obj_node uncast: 330 Phi === 328 284 295 [[ 767 789 715 337 337 771 771 767 350 350 350 715 715 583 383 383 383 375 375 375 404 404 404 465 465 465 483 483 483 507 507 507 527 527 527 543 543 543 583 583 ]] #com/sun/tools/jdi/EventRequestManagerImpl$WatchpointRequestImpl:NotNull * Oop:com/sun/tools/jdi/EventRequestManagerImpl$WatchpointRequestImpl:NotNull * !orig=[785] !jvms: EventRequestManagerImpl$EventRequestImpl::set @ bci:-1 EventRequestManagerImpl$EventRequestImpl::setEnabled @ bci:35
12-01-2012