My Oracle Support Banner

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 FEBRUARY 21, 2019

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 ...
#
# 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

...

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), ...

...
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 ...
#
# 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

siginfo: si_signo: 10 (SIGBUS), si_code: 1 (BUS_ADRALN), ...

...
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 ...
# guarantee(obj->mark() == markOopDesc::encode(mid)) failed: invariant

...
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 ...

...

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

...
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

 




Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

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


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.