JDK-7103050 : JSR 292: C1 crashes on JRuby testXML.rb after 7102657
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs23
  • Priority: P3
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: generic
  • CPU: generic
  • Submitted: 2011-10-20
  • Updated: 2012-01-17
  • Resolved: 2012-01-17
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.
Other
hs23Resolved
Related Reports
Relates :  
Description
The bug happens with both x86 and SPARC:

$ JAVA_OPTS="-client -Xcomp" ant -v run-junit-precompiled
...
    [junit] junit.framework.TestListener: startTest(testXML.rb)
    [junit] # To suppress the following error report, specify this argument
    [junit] # after -XX: or in .hotspotrc:  SuppressErrorAt=/c1_Instruction.hpp:135
    [junit] ==============================================================================
    [junit] Unexpected Error
    [junit] ------------------------------------------------------------------------------
    [junit] Internal Error at c1_Instruction.hpp:135, pid=14765, tid=7
    [junit] assert(0 <= i && i < length()) failed: index out of bounds
    [junit] 
    [junit] Do you want to debug the problem?
    [junit] 
    [junit] To debug, run 'dbx - 14765'; then switch to thread 7
    [junit] Enter 'yes' to launch dbx automatically (PATH must include dbx)
    [junit] Otherwise, press RETURN to abort...
    [junit] ==============================================================================

Comments
EVALUATION I can't reproduce the crash anymore. Maybe it has been fixed by some other changes or it's hidden by a change in the JRuby code. Not sure. I'm closing this bug now. If it comes back we need to reopen the bug and investigate further.
17-01-2012

EVALUATION Attaching to a running VM shows this data: [6] report_vm_error(file = 0xfe895c8e "/home/ct232829/hsx/hotspot-comp/7102657/src/share/vm/c1/c1_Instruction.hpp", line = 135, error_msg = 0xfe895cd9 "assert(0 <= i && i < length()) failed", detail_msg = 0xfe895cff "index out of bounds"), line 220 in "debug.cpp" [7] BlockBeginArray::operator[](this = 0xa648c08, i = 217), line 135 in "c1_Instruction.hpp" [8] BlockBeginArray::at(this = 0xa648c08, i = 217), line 135 in "c1_Instruction.hpp" [9] PredecessorValidator::PredecessorValidator(this = 0xbb3fe7b8, hir = 0xa938e38), line 1212 in "c1_IR.cpp" [10] IR::verify(this = 0xa938e38), line 1253 in "c1_IR.cpp" [11] Compilation::build_hir(this = 0xbb3fea14), line 133 in "c1_Compilation.cpp" [12] Compilation::compile_java_method(this = 0xbb3fea14), line 312 in "c1_Compilation.cpp" [13] Compilation::compile_method(this = 0xbb3fea14), line 381 in "c1_Compilation.cpp" [14] Compilation::Compilation(this = 0xbb3fea14, compiler = 0x81fb998, env = 0xbb3fec50, method = 0xac32fd8, osr_bci = -1, buffer_blob = 0xfbac4708), line 485 in "c1_Compilation.cpp" [15] Compiler::compile_method(this = 0x81fb998, env = 0xbb3fec50, method = 0xac32fd8, entry_bci = -1), line 110 in "c1_Compiler.cpp" [16] CompileBroker::invoke_compiler_on_method(task = 0x8204bc0), line 1680 in "compileBroker.cpp" [17] CompileBroker::compiler_thread_loop(), line 1521 in "compileBroker.cpp" [18] compiler_thread_entry(thread = 0x8202000, __the_thread__ = 0x8202000), line 2976 in "thread.cpp" [19] JavaThread::thread_main_inner(this = 0x8202000), line 1508 in "thread.cpp" [20] JavaThread::run(this = 0x8202000), line 1492 in "thread.cpp" [21] java_start(thread_addr = 0x8202000), line 1067 in "os_solaris.cpp" [22] _thr_setup(0xfdcd2a00), at 0xfeec71d0 [23] _lwp_start(0xbb3fe398, 0xbb3fe3a0, 0x39ad, 0xfed03830, 0x64, 0x0), at 0xfeec74c0 (dbx) fr 9 Current function is PredecessorValidator::PredecessorValidator 1212 assert(preds->at(j) == pred_copy->at(j), "must match"); (dbx) p -r block->_predecessors block->_predecessors = { BlockList::_BlockList::BlockBeginArray::ResourceArray::ResourceObj::_allocation_t = (4117513219U, 0) BlockList::_BlockList::BlockBeginArray::ResourceArray::_length = 221 BlockList::_BlockList::BlockBeginArray::ResourceArray::_data = 0xb508978 BlockList::_BlockList::BlockBeginArray::ResourceArray::_nesting = 3 BlockList::_BlockList::_size = 256 } (dbx) p -r *preds *preds = { BlockList::_BlockList::BlockBeginArray::ResourceArray::ResourceObj::_allocation_t = (4120605686U, 0) BlockList::_BlockList::BlockBeginArray::ResourceArray::_length = 217 BlockList::_BlockList::BlockBeginArray::ResourceArray::_data = 0xa63eda0 BlockList::_BlockList::BlockBeginArray::ResourceArray::_nesting = 4 BlockList::_BlockList::_size = 256 } (dbx) p -r *pred_copy *pred_copy = { BlockList::_BlockList::BlockBeginArray::ResourceArray::ResourceObj::_allocation_t = (4120626446U, 0) BlockList::_BlockList::BlockBeginArray::ResourceArray::_length = 221 BlockList::_BlockList::BlockBeginArray::ResourceArray::_data = 0xa643f00 BlockList::_BlockList::BlockBeginArray::ResourceArray::_nesting = 4 BlockList::_BlockList::_size = 256 } (dbx) dump preds = 0xa648c08 j = 217 pred_copy = 0xa643af0 length = 217 block = 0xa93bb80 rm = CLASS this = 0xbb3fe7b8 hir = 0xa938e38 i = 3
20-10-2011