2

JVM 崩溃日志文件:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (sharedRuntime.cpp:834), pid=4784, tid=0x00007f50656d6700
#  fatal error: exception happened outside interpreter, nmethods and vtable stubs at pc 0x00007f526d06d531
#
# JRE version: Java(TM) SE Runtime Environment (8.0_102-b14) (build 1.8.0_102-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

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

Current thread (0x00007f4fcc001000):  JavaThread "RdbRangeTask-27" [_thread_in_Java, id=5200, stack(0x00007f50655d6000,0x00007f50656d7000)]

Stack: [0x00007f50655d6000,0x00007f50656d7000],  sp=0x00007f50656d3d90,  free space=1015k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xac52aa]  VMError::report_and_die()+0x2ba
V  [libjvm.so+0x4fbe59]  report_fatal(char const*, int, char const*)+0x59
V  [libjvm.so+0x9c0d6a]  SharedRuntime::continuation_for_implicit_exception(JavaThread*, unsigned char*, SharedRuntime::ImplicitExceptionKind)+0x33a
V  [libjvm.so+0x92905a]  JVM_handle_linux_signal+0x48a
V  [libjvm.so+0x91f4b3]  signalHandler(int, siginfo*, void*)+0x43
C  [libpthread.so.0+0xf7e0]
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_294()Z+18
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_169()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_83()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3_30()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_457()Z+43
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_393()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_307()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_216()Z+21
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_105()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_90()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3R_81()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_3_28()Z+1
j  com.foundationdb.sql.parser.SQLGrammar.jj_2_28(I)Z+19
j  com.foundationdb.sql.parser.SQLGrammar.selectSublist(Lcom/foundationdb/sql/parser/ResultColumnList;)V+222
j  com.foundationdb.sql.parser.SQLGrammar.selectColumnList(Lcom/foundationdb/sql/parser/ResultColumnList;)V+2
j  com.foundationdb.sql.parser.SQLGrammar.selectList()Lcom/foundationdb/sql/parser/ResultColumnList;+19
j  com.foundationdb.sql.parser.SQLGrammar.querySpecification()Lcom/foundationdb/sql/parser/ResultSetNode;+121
j  com.foundationdb.sql.parser.SQLGrammar.simpleTable()Lcom/foundationdb/sql/parser/ResultSetNode;+33
j  com.foundationdb.sql.parser.SQLGrammar.nonJoinQueryPrimary()Lcom/foundationdb/sql/parser/ResultSetNode;+41
j  com.foundationdb.sql.parser.SQLGrammar.nonJoinQueryTerm(Lcom/foundationdb/sql/parser/ResultSetNode;I)Lcom/foundationdb/sql/parser/ResultSetNode;+1
j  com.foundationdb.sql.parser.SQLGrammar.queryExpression(Lcom/foundationdb/sql/parser/ResultSetNode;I)Lcom/foundationdb/sql/parser/ResultSetNode;+3
j  com.foundationdb.sql.parser.SQLGrammar.preparableSelectStatement()Lcom/foundationdb/sql/parser/CursorNode;+29
j  com.foundationdb.sql.parser.SQLGrammar.preparableSQLDataStatement()Lcom/foundationdb/sql/parser/StatementNode;+105
j  com.foundationdb.sql.parser.SQLGrammar.StatementPart([Lcom/foundationdb/sql/parser/Token;)Lcom/foundationdb/sql/parser/StatementNode;+237

虚拟机参数是:

-Xms8g -Xmx8g -XX:+PrintGCDetails -XX:+PrintGCDateStamps -verbose:gc
-XX:MaxTenuringThreshold=10 -XX:SurvivorRatio=14 -XX:NewRatio=2 
-XX:+UseParallelOldGC -XX:+PrintTenuringDistribution 
-XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime

我在具有 24 核 CPU 和 96GB 内存的物理机上单独运行它。

我对上面的崩溃日志文件有一些疑问:

  1. “com.foundationdb.sql.parser.SQLGrammar.jj_3R_294()Z+18”行中的“Z+18”(特别是“Z”)是什么意思?我发现了一些关于分析崩溃日志文件的博客文章,但没有一篇提到它(显然我错过了一些更详细的博客文章)。

  2. 这次崩溃的根本原因是什么?它是基础数据库代码中的错误,还是 JVM 核心中的错误(因为我搜索了关键字“内部错误(sharedRuntime.cpp:834)”并且有很多关于它的问题)。

谢谢!

4

0 回答 0