The SPECjbb2013 benchmark running with the G1 garbage collector intermittently terminates when attempting to allocate, resulting in an hs_err_pid file with the following offending thread:
Current thread (0x00000000004dd800): GCTaskThread [stack: 0xffff80ffbd746000,0xffff80ffbd846000] [id=22]
Stack: [0xffff80ffbd746000,0xffff80ffbd846000], sp=0xffff80ffbd840010, free space=1000k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x15e6cf1] void VMError::report(outputStream*)+0x961
V [libjvm.so+0x15e80fc] void VMError::report_and_die()+0x5ac
V [libjvm.so+0xcb000d] void report_vm_out_of_memory(const char*,int,unsigned long,VMErrorType,const char*)+0x8d
V [libjvm.so+0x147d698] RSHashTable::RSHashTable #Nvariant 1(unsigned long)+0x188
V [libjvm.so+0x147e8fc] void SparsePRT::expand()+0xac
V [libjvm.so+0x147e66e] bool SparsePRT::add_card(int,int)+0x2e
V [libjvm.so+0xe27b1f] void OtherRegionsTable::add_reference(void*,unsigned)+0x13f
V [libjvm.so+0x131b09d] int ObjArrayKlass::oop_oop_iterate_nv(oopDesc*,FilterOutOfRegionClosure*)+0x4ad
V [libjvm.so+0xe2113b] HeapWord*HeapRegion::oops_on_card_seq_iterate_careful(MemRegion,FilterOutOfRegionClosure*,bool,signed char*)+0x4ab
V [libjvm.so+0xd9aa9f] bool G1RemSet::refine_card(signed char*,unsigned,bool)+0x31f
V [libjvm.so+0xd9aff1] bool RefineRecordRefsIntoCSCardTableEntryClosure::do_card_ptr(signed char*,unsigned)+0x21
V [libjvm.so+0xd1d470] bool DirtyCardQueue::apply_closure_to_buffer(CardTableEntryClosure*,void**,unsigned long,unsigned long,bool,unsigned)+0xa0
V [libjvm.so+0xd1dde3] bool DirtyCardQueueSet::apply_closure_to_completed_buffer(CardTableEntryClosure*,unsigned,int,bool)+0x53
V [libjvm.so+0xd71531] void G1CollectedHeap::iterate_dirty_card_closure(CardTableEntryClosure*,DirtyCardQueue*,bool,unsigned)+0x81
V [libjvm.so+0xd9a165] void G1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure*,CodeBlobClosure*,unsigned)+0xc5
V [libjvm.so+0xd76a7f] void G1CollectedHeap::g1_process_roots(OopClosure*,OopClosure*,OopsInHeapRegionClosure*,CLDClosure*,CLDClosure*,CodeBlobClosure*,unsigned)+0x55f
V [libjvm.so+0xd7e06c] void G1ParTask::work(unsigned)+0x56c
V [libjvm.so+0x161cb54] void GangWorker::loop()+0xa4
V [libjvm.so+0x135b250] java_start+0x230
C [libc.so.1+0x121555] _thrp_setup+0xa5
C [libc.so.1+0x121800] _lwp_start+0x0
This error has only been seen on solaris-x64 patforms, and it intermittent. It was observed in one out of 5 executions of the benchmark.
Current thread (0x00000000004dd800): GCTaskThread [stack: 0xffff80ffbd746000,0xffff80ffbd846000] [id=22]
Stack: [0xffff80ffbd746000,0xffff80ffbd846000], sp=0xffff80ffbd840010, free space=1000k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x15e6cf1] void VMError::report(outputStream*)+0x961
V [libjvm.so+0x15e80fc] void VMError::report_and_die()+0x5ac
V [libjvm.so+0xcb000d] void report_vm_out_of_memory(const char*,int,unsigned long,VMErrorType,const char*)+0x8d
V [libjvm.so+0x147d698] RSHashTable::RSHashTable #Nvariant 1(unsigned long)+0x188
V [libjvm.so+0x147e8fc] void SparsePRT::expand()+0xac
V [libjvm.so+0x147e66e] bool SparsePRT::add_card(int,int)+0x2e
V [libjvm.so+0xe27b1f] void OtherRegionsTable::add_reference(void*,unsigned)+0x13f
V [libjvm.so+0x131b09d] int ObjArrayKlass::oop_oop_iterate_nv(oopDesc*,FilterOutOfRegionClosure*)+0x4ad
V [libjvm.so+0xe2113b] HeapWord*HeapRegion::oops_on_card_seq_iterate_careful(MemRegion,FilterOutOfRegionClosure*,bool,signed char*)+0x4ab
V [libjvm.so+0xd9aa9f] bool G1RemSet::refine_card(signed char*,unsigned,bool)+0x31f
V [libjvm.so+0xd9aff1] bool RefineRecordRefsIntoCSCardTableEntryClosure::do_card_ptr(signed char*,unsigned)+0x21
V [libjvm.so+0xd1d470] bool DirtyCardQueue::apply_closure_to_buffer(CardTableEntryClosure*,void**,unsigned long,unsigned long,bool,unsigned)+0xa0
V [libjvm.so+0xd1dde3] bool DirtyCardQueueSet::apply_closure_to_completed_buffer(CardTableEntryClosure*,unsigned,int,bool)+0x53
V [libjvm.so+0xd71531] void G1CollectedHeap::iterate_dirty_card_closure(CardTableEntryClosure*,DirtyCardQueue*,bool,unsigned)+0x81
V [libjvm.so+0xd9a165] void G1RemSet::oops_into_collection_set_do(OopsInHeapRegionClosure*,CodeBlobClosure*,unsigned)+0xc5
V [libjvm.so+0xd76a7f] void G1CollectedHeap::g1_process_roots(OopClosure*,OopClosure*,OopsInHeapRegionClosure*,CLDClosure*,CLDClosure*,CodeBlobClosure*,unsigned)+0x55f
V [libjvm.so+0xd7e06c] void G1ParTask::work(unsigned)+0x56c
V [libjvm.so+0x161cb54] void GangWorker::loop()+0xa4
V [libjvm.so+0x135b250] java_start+0x230
C [libc.so.1+0x121555] _thrp_setup+0xa5
C [libc.so.1+0x121800] _lwp_start+0x0
This error has only been seen on solaris-x64 patforms, and it intermittent. It was observed in one out of 5 executions of the benchmark.
- relates to
-
JDK-8152572 Solaris heap segment used by malloc placed in first 32 GB.
- Closed