分析下 # # A fatal error has been detected by the Java Runtime

动态 未结 0 9
邮箱用户_pb5l1
邮箱用户_pb5l1 LV1 昨天 23:15 发表
摘要:
分析下 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (safepoint.cpp:318), pid=23414, tid=140138232178432 # guarantee(PageArmed == 0) failed: invariant # # JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13) # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 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 # # An error report file with more information is saved as: # /opt/tomcat/hs_err_pid23414.log # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp #
这个错误信息是由Java运行时环境(JRE)检测到的致命错误,具体来自于Java虚拟机(JVM)的内部错误。下面是对错误信息的详细分析: 1. **错误类型和位置**: - **错误类型**:Internal Error(内部错误) - **文件位置**:safepoint.cpp:318 - 这表明错误发生在JVM的源代码文件`safepoint.cpp`的第318行。Safepoint是JVM中用于线程同步和垃圾收集的一个机制。 2. **进程和线程信息**: - **进程ID(pid)**:23414 - **线程ID(tid)**:140138232178432 - 这些信息可以帮助开发者在操作系统级别上跟踪和诊断问题。 3. **错误描述**: - **guarantee(PageArmed == 0) failed: invariant** - 这表明JVM内部的一个保证(guarantee)失败,即某个预期的不变条件(invariant)被违反了。在这个案例中,`PageArmed`应该等于0,但实际上不是。 4. **JRE和Java VM信息**: - **JRE版本**:Java(TM) SE Runtime Environment (7.0_51-b13) - **Java VM**:Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops) - 这些信息表明错误发生在Java 7的一个特定版本上,运行在64位的Linux服务器上。 5. **核心转储信息**: - **Failed to write core dump. Core dumps have been disabled.** - **To enable core dumping, try "ulimit -c unlimited" before starting Java again** - 这表明JVM尝试生成核心转储文件但失败了,因为核心转储已被禁用。核心转储文件对于调试和分析严重错误非常有用。通过运行`ulimit -c unlimited`命令,可以在启动Java之前启用无限制的核心转储大小。 6. **错误报告文件**: - 错误报告文件已保存为`/opt/tomcat/hs_err_pid23414.log` - 这个文件包含了更详细的错误信息,包括JVM的状态、线程堆栈、内存信息等,对于分析错误原因非常关键。 7. **提交错误报告**: - 提供了提交错误报告的链接:[http://bugreport.sun.com/bugreport/crash.jsp](http://bugreport.sun.com/bugreport/crash.jsp) - 如果问题无法自行解决,可以考虑向Oracle提交错误报告。 ### 解决步骤建议: 1. **查看错误日志文件**: - 首先,检查`/opt/tomcat/hs_err_pid23414.log`文件,获取更详细的错误信息。 2. **启用核心转储**: - 在下次启动Java应用之前,运行`ulimit -c unlimited`命令,以便在发生错误时生成核心转储文件。 3. **更新Java版本**: - 考虑升级到更新的Java版本,因为Java 7已经比较老旧,可能包含已知的漏洞和错误。 4. **分析代码和配置**: - 检查是否有特定的代码或配置可能导致JVM内部错误。特别是与内存管理和多线程相关的部分。 5. **搜索已知问题**: - 搜索Oracle的错误数据库或社区论坛,看看是否有其他用户报告了类似的问题和可能的解决方案。 通过上述步骤,可以更有效地诊断和解决这个JVM内部错误。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复