OpenJDK 8 crash in libjvm failing to reach safepoint to allocate memory for ActiveMQ NIO Worker

Solution Unverified - Updated

Environment

  • Red Hat Enterprise Linux (RHEL) 7.4
  • Red Hat JBoss Fuse 6.3.0
  • OpenJDK 1.8.0_141-b16

Issue

  • Fatal error log shows JVM crash in libjvm:
#  SIGSEGV (0xb) at pc=0x00007f595af07958, pid=46996, tid=0x00007f58e3efe700
#
# JRE version: OpenJDK Runtime Environment (8.0_141-b16) (build 1.8.0_141-b16)
# Java VM: OpenJDK 64-Bit Server VM (25.141-b16 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.so+0x90f958]

  • Fatal error shows VMThread is the current thread:
Current thread (0x00007f59545ed800):  VMThread [stack: 0x00007f58e3dfe000,0x00007f58e3eff000] [id=47036]
  • Fatal error log shows a failed allocation due to VMThread not able to reach safepont:
VM_Operation (0x00007f585f7f60e0): ParallelGCFailedAllocation, mode: safepoint, requested by thread 0x00007f5500366000
  • Fatal error log shows the thread that triggered the allocation/failure is an application thread:
  0x00007f5500366000 JavaThread "ActiveMQ NIO Worker 59149" daemon [_thread_blocked, id=33004, stack(0x00007f585f6f7000,0x00007f585f7f8000)]
Product(s)

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.