Java 8 U172 crashes, easylogging++

124 views Asked by At

We have 3 java thread calling native code where easylogging++ framework is used for logging. The app threads run for a while until the JVM crash happens. This is on a Windows 10 64 Bit PC using Java 8 U172. it happens every 30 minutes.

Below is the hs_err_pid5052 created.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffe1a71e02d, pid=5052, tid=0x0000000000001ea4
#
# JRE version: Java(TM) SE Runtime Environment (8.0_172-b11) (build 1.8.0_172-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.172-b11 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [iSerial.dll+0xe02d]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x000000001eb25000):  JavaThread "Device Id: 11 Device Name : BLOCK" [_thread_in_native, id=7844, stack(0x000000002be30000,0x000000002bf30000)]

siginfo: ExceptionCode=0xc0000005, reading address 0xffffffffffffffff

Registers:
RAX=0x000000002934a3a0, RBX=0x0000000027cdcf08, RCX=0x453d0f35522ec1dd, RDX=0x000000002934a3a0
RSP=0x000000002bf2e740, RBP=0x000000002bf2efc0, RSI=0x000000002bf2eb90, RDI=0x000000002bf2eb80
R8 =0x453d0f35522ec1dd, R9 =0x0000000000d599a8, R10=0x0000000029354d40, R11=0x0000000000000000
R12=0x0000000000000000, R13=0x0000000027cdcf08, R14=0x000000002bf2f040, R15=0x000000001eb25000
RIP=0x00007ffe1a71e02d, EFLAGS=0x0000000000010202

Top of Stack: (sp=0x000000002bf2e740)
0x000000002bf2e740:   0000000000d59990 000000002934a3a0
0x000000002bf2e750:   0000000000000000 00007ffe1a71d31f
0x000000002bf2e760:   0000000000d59990 000000002934a3a0
0x000000002bf2e770:   453d0f35522ec1dd 000000002934a3a0
0x000000002bf2e780:   0000000000000000 0000000000000080
0x000000002bf2e790:   000000002bf2efc0 00007ffe1a71e4d4
0x000000002bf2e7a0:   0000000000d59990 000000002934a3a0
0x000000002bf2e7b0:   453d0f35522ec1dd 0000000000000000
0x000000002bf2e7c0:   000000002934a390 453d0f35522ec1cd
0x000000002bf2e7d0:   000000002934a1b0 0000000029395700
0x000000002bf2e7e0:   000000000000003b 0000000000d68ac0
0x000000002bf2e7f0:   0000000029395708 000000002934a3a0
0x000000002bf2e800:   0000000000000015 0000000000d59990
0x000000002bf2e810:   0000000000000001 0800000000000000
0x000000002bf2e820:   0000000000000001 000000002bf2e850
0x000000002bf2e830:   0000000000d59990 00007ffe1a71ed73 

Instructions: (pc=0x00007ffe1a71e02d)
0x00007ffe1a71e00d:   cc cc cc 4c 89 44 24 18 48 89 54 24 10 48 89 4c
0x00007ffe1a71e01d:   24 08 48 83 ec 18 48 8b 44 24 28 48 8b 4c 24 30
0x00007ffe1a71e02d:   8b 09 39 08 75 09 c7 04 24 01 00 00 00 eb 07 c7
0x00007ffe1a71e03d:   04 24 00 00 00 00 0f b6 04 24 48 83 c4 18 c3 cc 


Register to memory mapping:

RAX=0x000000002934a3a0 is an unknown value
RBX={method} {0x0000000027cdcf10} 'open' '(Ljava/lang/String;IBCBCCCCCCI)I' in 'com/hctsi/comm/Serial'
RCX=0x453d0f35522ec1dd is an unknown value
RDX=0x000000002934a3a0 is an unknown value
RSP=0x000000002bf2e740 is pointing into the stack for thread: 0x000000001eb25000
RBP=0x000000002bf2efc0 is pointing into the stack for thread: 0x000000001eb25000
RSI=0x000000002bf2eb90 is pointing into the stack for thread: 0x000000001eb25000
RDI=0x000000002bf2eb80 is pointing into the stack for thread: 0x000000001eb25000
R8 =0x453d0f35522ec1dd is an unknown value
R9 =0x0000000000d599a8 is an unknown value
R10=0x0000000029354d40 is an unknown value
R11=0x0000000000000000 is an unknown value
R12=0x0000000000000000 is an unknown value
R13={method} {0x0000000027cdcf10} 'open' '(Ljava/lang/String;IBCBCCCCCCI)I' in 'com/hctsi/comm/Serial'
R14=0x000000002bf2f040 is pointing into the stack for thread: 0x000000001eb25000
R15=0x000000001eb25000 is a thread


Stack: [0x000000002be30000,0x000000002bf30000],  sp=0x000000002bf2e740,  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [iSerial.dll+0xe02d]
C  [iSerial.dll+0xd31f]
C  [iSerial.dll+0xe4d4]
C  [iSerial.dll+0x18ee6]
C  [iSerial.dll+0x15099]
C  [iSerial.dll+0xfddf]
C  [iSerial.dll+0x3575]
C  [iSerial.dll+0x1f63b]
C  [iSerial.dll+0x1d7bb]
C  [iSerial.dll+0x1b6cb]
C  [iSerial.dll+0x176ba]
C  [iSerial.dll+0x3f5f]
C  [iSerial.dll+0x2da30]
C  [iSerial.dll+0x2ab7f]
C  [iSerial.dll+0x2ae1d]
C  [iSerial.dll+0x23749]
C  [iSerial.dll+0x2370d]
C  [iSerial.dll+0x2eb74]
C  [iSerial.dll+0x2e730]
C  0x0000000002d98c67

Every Thread checks execute the below logic every 30 seconds. I suspect this is where the issue happens.

void StartLog()
{
    el::Configurations conf("C:\\logs\\iserial-conf.conf");
    el::Loggers::reconfigureAllLoggers(conf);
    logger = el::Loggers::getLogger("default");
    el::Helpers::installPreRollOutCallback(renameLogFile);
}
0

There are 0 answers