JDK-6322757 : GC crash in ParRootScanWithoutBarrierClosure::do_oop
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 1.4.2_09
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: generic
  • Submitted: 2005-09-12
  • Updated: 2010-12-07
  • Resolved: 2006-02-21
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 JDK 6
1.4.2_12 b01Fixed 6Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
Customers application is crashing daily in GC.

The original stack trace is 
-----------------  lwp# 3 / thread# 3  --------------------
 ffffffff7efa6f3c _lwp_kill (6, 0, ffffffff392fdb60, 7fbffeff00003ff6, 0, 2) + 8
 ffffffff7ef3d2e0 abort (0, ffffffff392fdc40, 0, fffffffffffffff8, 0, ffffffff392fdc69) + 100
 ffffffff7e90951c void os::abort(int) (1, ffffffff7e9d295c, ffffffff392fdd40, ffffffff7e9d24a9, 4b007c, ffffffff7eb78878) + 84
 ffffffff7e907e08 void os::handle_unexpected_exception(Thread*,int,unsigned char*,void*) (0, a, ffffffff7e9150d0, ffffffff392fece0, ffffffff7e69c6f8, 0) + 270
 ffffffff7e69c800 JVM_handle_solaris_signal (ffffffff392fece0, ffffffff7e9d443e, ffffffff392fea00, 1, 0, 1) + 8e0
 ffffffff7f218ae4 __sighndlr (a, ffffffff392fece0, ffffffff392fea00, ffffffff7e69cb9c, 0, 0) + c
 ffffffff7f212718 call_user_handler (ffffffff7ed00800, ffffffff392fece0, ffffffff392fea00, 0, 0, 0) + 25c
 ffffffff7f2128dc sigacthandler (a, ffffffff392fece0, ffffffff392fea00, 10, 1, 0) + 68
 --- called from signal handler with signal 10 (SIGBUS) ---
 ffffffff7e9150d0 void ParRootScanWithoutBarrierClosure::do_oop(oopDesc**) (ffffffff392ff960, fffffffe83fff4b0, 35a, ffffffff392ff030, ffffffff3940b6ac, ffffffff392fef50) + 34
 ffffffff7e90637c void InterpreterOopMap::iterate_oop(OffsetClosure*) (ffffffff392ff030, ffffffff392ff050, ffffffff392ff030, 0, ffffffff7e608aa4, ffffffff392ff060) + 7c
 ffffffff7e629064 void frame::oops_interpreted_do(OopClosure*,const RegisterMap*) (ffffffff29a0e2e0, 35a, 20, 392ff960, 0, 0) + 1a4
 ffffffff7e64d700 void JavaThread::oops_do(OopClosure*) (1010d9900, ffffffff392ff960, 0, ffffffffffffffff, 0, 0) + 120
 ffffffff7e954244 void Threads::possibly_parallel_oops_do(OopClosure*) (ffffffff392ff960, 1, ffffffff392ffa38, ffffffff392ff888, 9c30, 1dd408) + 84
 ffffffff7e6ab4d8 void GenCollectedHeap::process_strong_roots(int,int,int,GenCollectedHeap::ClassScanningOption,OopsInGenClosure*,OopsInGenClosure*) (10019b730, 0, 1, 0, 1, ffffffff392ff918) + a0
 ffffffff7e91481c void ParNewGenTask::work(int) (fffffffeb81ff5e0, 1, 0, 100172680, ffffffff7e96d530, 0) + 2f4
 ffffffff7e96d544 void GangWorker::run() (10019c270, 40, 0, 0, 0, 0) + a4
 ffffffff7e6cd64c _start (10019c270, 0, 0, 0, 0, 0) + ec
 ffffffff7f218814 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 4 / thread# 4  --------------------


customer agreed to test a fast debug build and the only one I had at the time was a 32 bit build so they ran with that.
the error log reported:

# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  Internal Error (/net/jpsesvr/jpse-US3/yq123930/tmp/hotspot142/hotspot142_09/src/share/vm/memory/cardTableModRefBS.hpp, 118 [ Patched ]), pid=11673, tid=3
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_20050817-debug mixed mode)
#
# Error: assert(_whole_heap.contains(p),"out of bounds access to card marking array")


more hotspot.log
<?xml version='1.0' encoding='UTF-8'?>
<hotspot_log version='142 1' process='11673' time_ms='1126289332399'>
<vm_version>
<name>
Java HotSpot(TM) Server VM
</name>
<release>
1.4.2_20050817-debug
</release>
<info>
Java HotSpot(TM) Server VM (1.4.2_20050817) for solaris-sparc, built on Aug 17 2005 19:58:01 by unknown with Workshop 5.2 compat=5
</info>
</vm_version>
<tty>
<writer thread='1'/>
[Verifying threads permgen concurrent mark-sweep generation par new generation remset syms strs zone dict hand C-heap ]
[Verifying threads permgen concurrent mark-sweep generation par new generation remset syms strs zone dict hand C-heap ]
<writer thread='5'/>
0.000: [GC 0.001: [ParNew VerifyBeforeGC:[Verifying threads permgen concurrent mark-sweep generation par new generation remset syms strs zone dict hand C-heap ]
<tty_done stamp='6.174'/>
</tty>
<hotspot_log_done stamp='6.174'/>
</hotspot_log>


-----------------  lwp# 3 / thread# 3  --------------------
_lwp_kill (6, 0, fb77f198, 2ad08, fe4ac344, 0) + 8
abort    (fb77f238, fee3a6eb, 1, 7efefeff, 81010100, ff00) + 100
void os::abort(int)
void VMError::report_and_die()
void report_assertion_failure(const char*,int,const char*)
void VMError::report(outputStream*)
void VMError::report_and_die()
void report_assertion_failure(const char*,int,const char*)
void CardTableModRefBS::get_LNC_array_for_space(Space*,signed char**&,unsigned&,unsigned&)
void CardTableModRefBS::par_non_clean_card_iterate_work(Space*,MemRegion,DirtyCardToOopClosure*,MemRegionClosure*,int,int)
void CardTableModRefBS::non_clean_card_iterate(Space*,MemRegion,DirtyCardToOopClosure*,MemRegionClosure*,int)
void CardTableRS::younger_refs_in_space_iterate(Space*,OopsInGenClosure*)
void ConcurrentMarkSweepGeneration::younger_refs_iterate(OopsInGenClosure*)
void GenCollectedHeap::process_strong_roots(int,int,int,GenCollectedHeap::ClassScanningOption,OopsInGenClosure*,OopsInGenClosure*)
void ParNewGenTask::work(int)
void GangWorker::run()
_start   (c9610, 0, 0, 0, 0, 0) + 190
_lwp_start (0, 0, 0, 0, 0, 0)

Comments
EVALUATION vPlease note there is a similar cr# 6344991... The simplified signature for this cr# (6322757) is: (Generally SIGBUS) in ParRootScanWithoutBarrierClosure::do_oop InterpreterOopMap::iterate_oop frame::oops_interpreted_do JavaThread::oops_do Threads::possibly_parallel_oops_do GenCollectedHeap::process_strong_roots ParNewGenTask::work GangWorker::run
10-11-2005

SUGGESTED FIX In order to continue the investigation using a fastdebug build, you will first need to backport the fixes in 4862560; which i am adding to the "See Also" section of this report.
16-09-2005