Java 8 on Solaris SPARC - Garbage Collector Crashes with SIGSEGV, SIGBUS, or Internal Error when Doing 'copy_to_survivor_space' or Synchronization Operations

(Doc ID 2200728.1)

Last updated on JUNE 02, 2017

Applies to:

Java SE JDK and JRE - Version 8 and later
Oracle Solaris on SPARC (64-bit)

Symptoms

On Solaris SPARC systems that do not have the PICL library installed and are using Java SE 8 and higher:

Garbage Collector (GC) crashes are seen with SIGSEGV, SIGBUS, or Internal Error during copy_to_survivor_space operations.

The following crash signatures have been seen:

 

G1 Garbage Collector (G1GC) 

SIGSEGV at oopDesc*G1ParScanThreadState::copy_to_survivor_space(const InCSetState,oopDesc*const,markOopDesc*const)

# SIGSEGV (0xb) at pc=0xffffffff7d6316c8, pid=16727, tid=30
#
# JRE version: Java(TM) SE Runtime Environment (8.0_60-b27) (build 1.8.0_60-b27)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode solaris-sparc compressed oops)
# Problematic frame:
# V [libjvm.so+0x6316c8] oopDesc*G1ParScanThreadState::copy_to_survivor_space(const InCSetState,oopDesc*const,markOopDesc*const)+0xd0

...

Current thread (0x0000000100179800): GCTaskThread [stack: 0xffffffff75e00000,0xffffffff75f00000] [id=30]

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x000000000000c0f8

...

Stack: [0xffffffff75e00000,0xffffffff75f00000], sp=0xffffffff75eff0e0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x6316c8] oopDesc*G1ParScanThreadState::copy_to_survivor_space(const InCSetState,oopDesc*const,markOopDesc*const)+0xd0
V [libjvm.so+0x6110bc] void G1ParScanThreadState::do_oop_evac<unsigned>(__type_0*,HeapRegion*)+0xc4
V [libjvm.so+0x6311b8] void G1ParScanThreadState::trim_queue()+0x2d0
V [libjvm.so+0x6054f8] void G1ParEvacuateFollowersClosure::do_void()+0x30
V [libjvm.so+0x60a9c8] void G1ParTask::work(unsigned)+0x488

...

 

SIGBUS at oopDesc*G1ParScanThreadState::copy_to_survivor_space(const InCSetState,oopDesc*const,markOopDesc*const)

# SIGBUS (0xa) at pc=0xffffffff7d616258, pid=24821, tid=0x0000000000000003
#
# JRE version: Java(TM) SE Runtime Environment (8.0_101-b13) (build 1.8.0_101-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.101-b13 mixed mode solaris-sparc compressed oops)
# Problematic frame:
# V [libjvm.so+0x616258] oopDesc*G1ParScanThreadState::copy_to_survivor_space(const InCSetState,oopDesc*const,markOopDesc*const)+0x88

...

Current thread (0x000000010014c800): GCTaskThread [stack: 0xffffffff79e00000,0xffffffff79f00000] [id=3]

siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), si_addr: 0xfffffffe30760073

...

Stack: [0xffffffff79e00000,0xffffffff79f00000], sp=0xffffffff79eff060, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x616258] oopDesc*G1ParScanThreadState::copy_to_survivor_space(const InCSetState,oopDesc*const,markOopDesc*const)+0x88
V [libjvm.so+0x5f5e8c] void G1ParScanThreadState::do_oop_evac<unsigned>(__type_0*,HeapRegion*)+0xc4
V [libjvm.so+0x615d90] void G1ParScanThreadState::trim_queue()+0x2d0
V [libjvm.so+0x5ea318] void G1ParEvacuateFollowersClosure::do_void()+0x30
V [libjvm.so+0x5ef9c0] void G1ParTask::work(unsigned)+0x414

 

Internal Error in synchronizer.cpp

# Internal Error (synchronizer.cpp:1574), pid=11862, tid=129
# guarantee(obj->mark() == markOopDesc::encode(mid)) failed: invariant 

Current thread (0x00000001005a4800): VMThread "VM Thread" [stack: 0xffffffff40e00000,0xffffffff40f00000] [id=129]

VM_Operation (0xffffffff388fe7c0): G1IncCollectionPause, mode: safepoint, requested by thread 0x0000000100869000

Stack: [0xffffffff40e00000,0xffffffff40f00000], sp=0xffffffff40efee90, free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x12d48c0] void VMError::report_and_die(int,const char*,const char*,void*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned long)+0xaa0
V [libjvm.so+0x12d3dac] void VMError::report_and_die(Thread*,const char*,int,const char*,const char*,void*)+0x3c
V [libjvm.so+0x913154] void report_vm_error(const char*,int,const char*,const char*,...)+0x64
V [libjvm.so+0x11fdb74] bool ObjectSynchronizer::deflate_monitor(ObjectMonitor*,oopDesc*,ObjectMonitor**,ObjectMonitor**)+0x44
V [libjvm.so+0x11fe118] void ObjectSynchronizer::deflate_idle_monitors()+0xb8
V [libjvm.so+0x1143b3c] void SafepointSynchronize::do_cleanup_tasks()+0x8c
V [libjvm.so+0x11434d4] void SafepointSynchronize::begin()+0xb84

 

 Parallel Collector

SIGSEGV at markOopDesc*markOopDesc::displaced_mark_helper()const

# SIGSEGV (0xb) at pc=0xfffffff28a7c35c4, pid=21807, tid=3

...

# Problematic frame:
# V [libjvm.so+0xcc35c4] markOopDesc*markOopDesc::displaced_mark_helper()const+0x64

...

Current thread (0x00000001001dd800): GCTaskThread "ParGC Thread#0" [stack: 0xffffffff74600000,0xffffffff74700000] [id=3]

Stack: [0xffffffff74600000,0xffffffff74700000], sp=0xffffffff746ff330, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xcc35c4] markOopDesc*markOopDesc::displaced_mark_helper()const+0x64
V [libjvm.so+0x17700a8] oop PSPromotionManager::copy_to_survivor_space<false>(oop)+0x1e8
V [libjvm.so+0x176ca0c] void PSPromotionManager::copy_and_push_safe_barrier<unsigned,false>(__type_0*)+0x37c
V [libjvm.so+0x1766744] void PSPromotionManager::drain_stacks_depth(bool)+0x464
V [libjvm.so+0x1779668] void StealTask::do_it(GCTaskManager*,unsigned)+0x88
V [libjvm.so+0xe92608] void GCTaskThread::run()+0x338
V [libjvm.so+0x166ea44] java_start+0x414

 




Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms