现象
Tomcat运行过程中出现崩溃现象,所幸服务器监控程序自动对其执行了重新启动,因此对生成环境没有造成太久的服务中断。
崩溃问题首次出现,考虑为偶然情况。然而在几日之内,Tomcat再次崩溃,因此需要调查具体崩溃原因,初步考虑后,推测是由于Tomcat运行所占内存过大,因此被系统kill,准备升级服务器。
排查
1. Tomcat内存占用过大,被系统kill。
2. Jvm遇到致命错误崩溃。
如果Jvm遇到致命错误而崩溃,应当会在程序目录生成hs_err_pid.log等错误报告文件:
3. Tomcat遇到错误崩溃。
日志量非常大,经过拆分后,定位到崩溃日期附件,终于找到蛛丝马迹:
2022-06-14 08:29:14,121 [ERROR] ControllerHelper:139 – readValue error: {g:
*** Error in `//bin/java‘: malloc(): memory corruption: 0x00007fb4440a1de0 ***
/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]
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库文件存在问题,该库文件非系统自带,为业务底层代码库,因此修复之即可。
原文地址:https://blog.csdn.net/Dancen/article/details/125388556
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_39914.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!