Java crash SIGSEGV in JNA library at CkMultiByteBase::nextIdx

Solution Unverified - Updated

Environment

  • Red Hat JBoss Enterprise Application Platform
    • 6.4.9
  • OpenJDK 8
    • 1.8.0_65-b17
  • JNA 4.5.0

Issue

  • JBoss crashes after weeks of uptime with the following in the fatal error log:
#  SIGSEGV (0xb) at pc=0x00007f11cbec3480, pid=101755, tid=139714768807680
#
# JRE version: OpenJDK Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17)
# Java VM: OpenJDK 64-Bit Server VM (25.65-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [jna8588255081773605818.tmp+0x13c480]  CkMultiByteBase::nextIdx()+0x10
...

Current thread (0x00007f127434f800):  JavaThread "ajp-/#.#.#.#:8109-28" daemon [_thread_in_native, id=112672, stack(0x00007f11e11a2000,0x00007f11e12a3000)]
...

Stack: [0x00007f11e11a2000,0x00007f11e12a3000],  sp=0x00007f11e129f0d0,  free space=1012k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [jna8588255081773605818.tmp+0x13c480]  CkMultiByteBase::nextIdx()+0x10

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.jna.Native.invokePointer(Lcom/sun/jna/Function;JI[Ljava/lang/Object;)J+0
J 71837 C1 com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;ZI)Ljava/lang/Object; (769 bytes) @ 0x00007f125c57a084 [0x00007f125c579280+0xe04]
J 60128 C1 com.sun.jna.Function.invoke(Ljava/lang/reflect/Method;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object; (548 bytes) @ 0x00007f12590d940c [0x00007f12590d7a20+0x19ec]
J 60127 C1 com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object; (348 bytes) @ 0x00007f1259d8f834 [0x00007f1259d8d440+0x23f4]
j  com.sun.proxy.$Proxy190.Class1_method1(Lcom/sun/jna/Pointer;I)Lcom/sun/jna/Pointer;+23
j  com.example.Class1.method1(Z)Lcom/example/Class2;+18
...

Dynamic libraries:
...

7f11c6e23000-7f11c7459000 r-xp 00000000 fd:00 394392                     /tmp/jna-100923095/jna5800652191103824838.tmp (deleted)
...

7f11dfa5d000-7f11dfa61000 r--s 0015c000 fd:03 1181316                    /apps/jboss-eap-6.4/domain/server/tmp/vfs/deployment/deployment7aefc19ea0713563/jna-4.5.0.jar-1c688ac8cd5c2898/jna-4.5.0.jar
...

---------------  S Y S T E M  ---------------

OS:Red Hat Enterprise Linux Server release 7.2 (Maipo)

uname:Linux 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64
...

vm_info: OpenJDK 64-Bit Server VM (25.65-b01) for linux-amd64 JRE (1.8.0_65-b17), built on Oct 19 2015 06:27:55 by "mockbuild" with gcc 4.8.3 20140911 (Red Hat 4.8.3-9)

elapsed time: 2327474 seconds (26d 22h 31m 14s)

Resolution

The crash is happening in Java Native Access (JNA). JNA is used to access native libraries as an alternative to Java Native Interface(JNI) code.

JNA is not part of the Java JDK. The JNA library is distributed with the application and is therefore application code and not supported by Red Hat.

Next steps for troubleshooting should be from the JNA vendor. Red Hat will provide support for the underlying OpenJDK if the JNA vendor finds an issue with a valid/supported use case.

Root Cause

3rd party JNA library.

Diagnostic Steps

What is the application use case for JNA code?

Category

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.