Tomcat崩溃排查 您所在的位置:网站首页 tomcat查看日志linux Tomcat崩溃排查

Tomcat崩溃排查

2024-06-03 13:53| 来源: 网络整理| 查看: 265

现象

Tomcat运行过程中出现崩溃现象,所幸服务器监控程序自动对其执行了重新启动,因此对生成环境没有造成太久的服务中断。

 

崩溃问题首次出现,考虑为偶然情况。然而在几日之内,Tomcat再次崩溃,因此需要调查具体崩溃原因,初步考虑后,推测是由于Tomcat运行所占内存过大,因此被系统kill,准备升级服务器。

排查 1. Tomcat内存占用过大,被系统kill。

假设是系统所为,一般会有系统日志:

cat /var/log/messages

查看后没有发现kill、mem相关日志。

2. Jvm遇到致命错误崩溃。

如果Jvm遇到致命错误而崩溃,应当会在程序目录生成hs_err_pid.log等错误报告文件:

ll tomcat/bin

查看后没有找到崩溃日志。

3. Tomcat遇到错误崩溃。

直接查看Tomcat日志:

cat tomcat/logs/catalina.out

日志量非常大,经过拆分后,定位到崩溃日期附件,终于找到蛛丝马迹:

2022-06-14 08:29:14,121 [ERROR] ControllerHelper:139 - readValue error: {g:

*** Error in `//bin/java': malloc(): memory corruption: 0x00007fb4440a1de0 ***

======= Backtrace: =========

/lib64/libc.so.6(+0x82aa6)[0x7fb50ef30aa6]

/lib64/libc.so.6(__libc_malloc+0x4c)[0x7fb50ef336fc]

/usr/lib64/libse.so(Java_com_s_Se_d+0x142)[0x7fb39abb1cec]

[0x7fb4fa7206c7]

======= Memory map: ========

00400000-00401000 r-xp 00000000 fd:01 1307450                            /usr/java/jdk1.8.0_131/jre/bin/java

00600000-00601000 rw-p 00000000 fd:01 1307450                            /usr/java/jdk1.8.0_131/jre/bin/java

00828000-009c9000 rw-p 00000000 00:00 0                                  [heap]

6c7c00000-708a00000 rw-p 00000000 00:00 0

708a00000-76d400000 ---p 00000000 00:00 0

76d400000-783080000 rw-p 00000000 00:00 0

783080000-7c0000000 ---p 00000000 00:00 0

7c0000000-7c1580000 rw-p 00000000 00:00 0

7c1580000-800000000 ---p 00000000 00:00 0

7fb32db7e000-7fb32db81000 ---p 00000000 00:00 0

7fb32db81000-7fb32dc7f000 rw-p 00000000 00:00 0

7fb32dc7f000-7fb32dc82000 ---p 00000000 00:00 0

由此可见,Tomcat在运行过程中,底层代码库(so文件)遇到了内存错误,从而导致Tomcat崩溃,具体而言,出错的库文件如下:

usr/lib64/libse.so(Java_com_s_Se_d+0x142)[0x7fb39abb1cec]

即libse.so库文件存在问题,该库文件非系统自带,为业务底层代码库,因此修复之即可。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有