JDK-6857661 : 64-bit server VM: assert(is_Initialize(),"invalid node class")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs16
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: sparc
  • Submitted: 2009-07-06
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
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
6u18Fixed 7Fixed hs16Fixed
Related Reports
Relates :  
Nightly testing have new failure after 6840775 fix on all platforms with 64-bit VM


% bin/java -d64 -cp /net/sqenfs-1.sfbay/export1/comp/vm/testbase/jck/6b/dist/JCK-runtime-6b/classes:/java/sqe/comp/vm/testbase/sqe/vm/6/build/latest/vm/bin/classes -Xcomp -XX:CompileThreshold=100 -Xverify:all nsk.stress.share.StressTestRunner -testList /java/sqe/comp/vm/testbase/sqe/vm/6/build/latest/vm/src/nsk/stress/jck60//jck60014/tests -stress:indulgent

# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/node.hpp:705
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error (/tmp/jprt/P2/B/032928.kvn/source/src/share/vm/opto/node.hpp:705), pid=3893, tid=16
#  Error: assert(is_Initialize(),"invalid node class")
# JRE version: 7.0-b62
# Java VM: OpenJDK 64-Bit Server VM (16.0-b05-2009-07-02-032928.kvn.6840775-jvmg compiled mode solaris-amd64 )
# An error report file with more information is saved as:
# /export/home/kvn/build/6840775_hs16/VM/hs_err_pid3893.log
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
---------------  T H R E A D  --------------- 
Current thread (0x00000000006fd000):  JavaThread "CompilerThread1" daemon [_thread_in_native, id=16, stack(0xfffffd7ef304c000,0xfffffd7ef314c000)] 
Stack: [0xfffffd7ef304c000,0xfffffd7ef314c000],  sp=0xfffffd7ef31482c0,  free space=3f0fffffd7fff30424ak 
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 
V  [libjvm.so+0x1003044] void VMError::report(outputStream*) + 0xeb4
V  [libjvm.so+0x10045c5] void VMError::report_and_die() + 0x8e5
V  [libjvm.so+0x9295a2] void report_assertion_failure(const char*,int,const char*) + 0x82
V  [libjvm.so+0x9d1b35] InitializeNode*Node::as_Initialize()const + 0x45
V  [libjvm.so+0xcd1123] void LibraryCallKit::generate_arraycopy(const TypePtr*,BasicType,Node*,Node*,Node*,Node*,Node*,bool,bool,RegionNode*) + 0xb03
V  [libjvm.so+0xcd0605] bool LibraryCallKit::inline_arraycopy() + 0x675
V  [libjvm.so+0xcb9a06] bool LibraryCallKit::try_to_inline() + 0x126
V  [libjvm.so+0xcb9476] JVMState*LibraryIntrinsic::generate(JVMState*) + 0x106
V  [libjvm.so+0x9b3739] void Parse::do_call() + 0x759
V  [libjvm.so+0xe34102] void Parse::do_one_bytecode() + 0x5da2
V  [libjvm.so+0xe21497] void Parse::do_one_block() + 0x657
V  [libjvm.so+0xe1cefe] void Parse::do_all_blocks() + 0x2be
V  [libjvm.so+0xe1cb11] Parse::Parse(JVMState*,ciMethod*,float) + 0x1161
V  [libjvm.so+0x7ba477] JVMState*ParseGenerator::generate(JVMState*) + 0xe7
V  [libjvm.so+0x8a15b9] Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool) + 0xd89
V  [libjvm.so+0x7b9371] void C2Compiler::compile_method(ciEnv*,ciMethod*,int) + 0xf1
V  [libjvm.so+0x8b5abb] void CompileBroker::invoke_compiler_on_method(CompileTask*) + 0x60b
V  [libjvm.so+0x8b4e90] void CompileBroker::compiler_thread_loop() + 0x460
V  [libjvm.so+0xf8f487] void compiler_thread_entry(JavaThread*,Thread*) + 0x67
V  [libjvm.so+0xf89bd1] void JavaThread::thread_main_inner() + 0x131
V  [libjvm.so+0xf89a91] void JavaThread::run() + 0x241
V  [libjvm.so+0xde25e3] java_start + 0x233
C  [libc.so.1+0xd0aab]  _thr_slot_offset+0x31b _thr_setup + 0x5b
C  [libc.so.1+0xd0ce0]  _thr_slot_offset+0x550 _lwp_start + 0x0

Current CompileTask: 
C2:8922  !b  javasoft.sqe.tests.api.java.lang.System.ArraycopyTests.System2011()Ljavasoft/sqe/javatest/Status; (27 bytes)

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4325cdaa78ad

PUBLIC COMMENTS Problem: It is regression after 6840775 fix. The secondary raw memory barrier (Initialize node) is misplaced on zero length path in generate_arraycopy(). It should be generated only if the path is not dead (in the bug case the copy length is negative) and only after a zeroing code for a new allocated object. Solution: Move the secondary raw memory barrier to the correct place.

SUGGESTED FIX Move the secondary raw memory barrier to the correct place.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/4325cdaa78ad