64-bit Java SE 6u65 processes receive signal SEGV intermittently:
Error message:
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0xffffffff7e083510, pid=15647, tid=26
#
# JRE version: 6.0_65-b14
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.65-b04 mixed mode solaris-sparc compress
ed oops)
# Problematic frame:
# V [libjvm.so+0x883510] unsigned long BitMap::get_next_one_offset_inline_aligned_right(unsigned long,unsigned long)const+0x20
Pattern is consistent:
% grep '# V' *
hs_err_pid15647.log:# V [libjvm.so+0x883510] unsigned long BitMap::get_next_one_offset_inline_aligned_right(unsigned long,unsigned long)const+0x20
hs_err_pid2251.log:# V [libjvm.so+0x883510] unsigned long BitMap::get_next_one_offset_inline_aligned_right(unsigned long,unsigned long)const+0x20
hs_err_pid3014.log:# V [libjvm.so+0x883510] unsigned long BitMap::get_next_one_offset_inline_aligned_right(unsigned long,unsigned long)const+0x20
hs_err_pid7942.log:# V [libjvm.so+0x883510] unsigned long BitMap::get_next_one_offset_inline_aligned_right(unsigned long,unsigned long)const+0x20
%
% grep '^# SIGSEGV' *
hs_err_pid15647.log:# SIGSEGV (0xb) at pc=0xffffffff7e083510, pid=15647, tid=26
hs_err_pid2251.log:# SIGSEGV (0xb) at pc=0xffffffff7e083510, pid=2251, tid=6
hs_err_pid3014.log:# SIGSEGV (0xb) at pc=0xffffffff7e083510, pid=3014, tid=6
hs_err_pid7942.log:# SIGSEGV (0xb) at pc=0xffffffff7e083510, pid=7942, tid=26
%
% grep elapsed *
hs_err_pid15647.log:elapsed time: 2155 seconds
hs_err_pid2251.log:elapsed time: 46778 seconds
hs_err_pid3014.log:elapsed time: 75547 seconds
hs_err_pid7942.log:elapsed time: 90029 seconds
%
Stack trace of failing thread:
hs_err_pid15647.log
Stack: [0xffffffff73000000,0xffffffff73100000], sp=0xffffffff730ff030, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x883510] unsigned long BitMap::get_next_one_offset_inline_aligned_right(unsigned long,unsigned long)const+0x20
V [libjvm.so+0x8adefc] HeapWord*ParallelCompactData::calc_new_pointer(HeapWord*)+0x88
V [libjvm.so+0x5e06f8] int instanceKlassKlass::oop_update_pointers(ParCompactionManager*,oopDesc*)+0x80
V [libjvm.so+0x8b50a4] ParMarkBitMap::IterationStatus MoveAndUpdateClosure::do_addr(HeapWord*,unsigned long)+0x74
V [libjvm.so+0x88323c] ParMarkBitMap::IterationStatus ParMarkBitMap::iterate(ParMarkBitMapClosure*,unsigned long,unsigned long)const+0x9c
V [libjvm.so+0x8b4ddc] void PSParallelCompact::move_and_update(ParCompactionManager*,PSParallelCompact::SpaceId)+0x174
V [libjvm.so+0x8b1f98] void PSParallelCompact::compact_perm(ParCompactionManager*)+0x78
V [libjvm.so+0x8b0d0c] void PSParallelCompact::invoke_no_policy(bool)+0x5f4
V [libjvm.so+0x8b8388] void PSScavenge::invoke()+0x198
V [libjvm.so+0x88a110] HeapWord*ParallelScavengeHeap::failed_mem_allocate(unsigned long,bool)+0xc0
V [libjvm.so+0x263784] void VM_ParallelGCFailedAllocation::doit()+0xac
V [libjvm.so+0x25fc24] void VM_Operation::evaluate()+0x8c
V [libjvm.so+0x9c169c] void VMThread::evaluate_operation(VM_Operation*)+0xd4
V [libjvm.so+0x9c1bb4] void VMThread::loop()+0x40c
V [libjvm.so+0x2d6cf4] void VMThread::run()+0xa4
V [libjvm.so+0x86fde4] java_start+0x164
The failure pattern is pretty consistent.
The only difference was:
VM_Operation (0xfffffffdaaafea70): ParallelGCFailedAllocation, mode: safepoint, requested by thread 0x0000000108fa9000
vs.
VM_Operation (0xfffffffda4dfca38): ParallelGCSystemGC, mode: safepoint, requested by thread 0x0000000104303000
In all cases, the following runtime parameter was configured:
-Xrunjdwp:transport=dt_socket,server=y,address=25008,suspend=n
So, /opt/jdk1.6.0_65/jre/lib/sparcv9/libjdwp.so was used.