JVM crash during Concurrent Mark Sweep minor collection
Issue
- Fatal error log on Oracle JDK 1.6 shows SIGSEGV with the current thread GCTaskThread:
# SIGSEGV (0xb) at pc=0x00007f028c329dc9, pid=17444, tid=139648850336080
#
# JRE version: 6.0_18-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (16.0-b13 mixed mode linux-amd64 )
# Problematic frame:
# V [libjvm.so+0x3b1dc9]
...
--------------- T H R E A D ---------------
Current thread (0x0000000040125000): GCTaskThread [stack: 0x0000000000000000,0x0000000000000000] [id=17465]
- Windows equivalent of the above:
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006da2d487, pid=2420, tid=2780
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.1-b02 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V [jvm.dll+0x19d487]
...
--------------- T H R E A D ---------------
Current thread (0x0000000000315000): GCTaskThread [stack: 0x00000000066c0000,0x00000000067c0000] [id=2780]
- Fatal error log on Oracle JDK 1.7 shows SIGBUS with the current thread GCTaskThread:
# SIGBUS (0x7) at pc=0x00007fe7dde3fb73, pid=5780, tid=140633812121344
#
# JRE version: 7.0_25-b15
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.25-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x3a6b73] CompactibleFreeListSpace::par_get_chunk_of_blocks(unsigned long, unsigned long, FreeList*)+0x6d3
...
--------------- T H R E A D ---------------
Current thread (0x00007fe7d801f000): GCTaskThread [stack: 0x0000000000000000,0x0000000000000000] [id=5793]
- Fatal error log shows live objects in both the "from space" and "to space":
Heap
par new generation total 76672K, used 76249K [0x00007f015ebe0000, 0x00007f0163f10000, 0x00007f0163f10000)
eden space 68160K, 100% used [0x00007f015ebe0000, 0x00007f0162e70000, 0x00007f0162e70000)
from space 8512K, 95% used [0x00007f0162e70000, 0x00007f01636566e0, 0x00007f01636c0000)
to space 8512K, 76% used [0x00007f01636c0000, 0x00007f0163d13ef0, 0x00007f0163f10000)
concurrent mark-sweep generation total 4522816K, used 3098645K [0x00007f0163f10000, 0x00007f0277fe0000, 0x00007f0277fe0000)
concurrent-mark-sweep perm gen total 190088K, used 112863K [0x00007f0277fe0000, 0x00007f0283982000, 0x00007f0287fe0000)
- The Stack in the fatal error log shows the crash happens when promoting objects from the eden space to the survivor space:
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x3a6b73] CompactibleFreeListSpace::par_get_chunk_of_blocks(unsigned long, unsigned long, FreeList*)+0x6d3
V [libjvm.so+0x3a6e43] CFLS_LAB::get_from_global_pool(unsigned long, FreeList*)+0xb3
V [libjvm.so+0x3a7ea5] CFLS_LAB::alloc(unsigned long)+0xe5
V [libjvm.so+0x3e23c5] ConcurrentMarkSweepGeneration::par_promote(int, oopDesc*, markOopDesc*, unsigned long)+0xa5
V [libjvm.so+0x759fe1] ParNewGeneration::copy_to_survivor_space_avoiding_promotion_undo(ParScanThreadState*, oopDesc*, unsigned long, markOopDesc*)+0xc1
Environment
- Oracle/Open JDK 1.6, update 18
- Oracle/Open JDK 1.6, update 24
- Oracle/Open JDK 1.7, update 25
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
