Centos内核core dump分析


kernel 相关包

cnetos8以后有个毛病,执行yum install kernel安装的时候,会自动安装新版本的kernel,而不是本机对应的kernel版本

CentOS Web Style

hung产生core dump

echo 1 > /proc/sys/kernel/hung_task_panic

第一步:下载内核符号

yum –enablerepo=base-debuginfo install -y kernel-debuginfo-$(uname -r)

如果安装不了,可以到

http://debuginfo.centos.org/8/x86_64/Packages/

上去下载对应的安装包

如果是8.4或者8.2以上系统,可以修改

/etc/yum.repos.d/CentOS-Linux-Debuginfo.repo

设置enable=1

然后执行

yum install -y kernel-debuginfo

[root@centos-test ~]# yum install -y kernel-debuginfo
Last metadata expiration check: 0:06:15 ago on Thu 16 Sep 2021 01:17:11 PM CST.
Dependencies resolved.
======================================================================================================================
 Package                                  Architecture     Version                          Repository           Size
======================================================================================================================
Installing:
 kernel-debuginfo                         x86_64           4.18.0-305.19.1.el8_4            debuginfo           570 M
Installing dependencies:
 kernel-debuginfo-common-x86_64           x86_64           4.18.0-305.19.1.el8_4            debuginfo            75 M

Transaction Summary
======================================================================================================================
Install  2 Packages

Total size: 645 M
Total download size: 570 M
Installed size: 3.3 G
Downloading Packages:
[SKIPPED] kernel-debuginfo-common-x86_64-4.18.0-305.19.1.el8_4.x86_64.rpm: Already downloaded
(2/2): kernel-debuginfo-4.18.0-305.19.1 36% [==============                         ] 1.5 MB/s | 237 MB     04:32 ETA

第二步:安装crash工具

yum install crash -y

第三步:分析core dump文件

执行命令:

crash  /usr/lib/debug/lib/modules/4.18.0-80.el8.x86_64/vmlinux /var/crash/127.0.0.1-2021-09-09-17\:09\:12/vmcore

如果是第一次执行crash,会下载一些相关的符号,会慢一点。

从图中可以看到,这个core dump文件并不是系统crash了,而是系统hung住了。

执行一下bt命令,如下:

也可以看出来,是watchdog检测到hung的时间超过了设置值,就出发了panic。

我们执行一下log命令,看一下dmesg显示的信息是什么,定位一下真正的hung是什么原因,如图:

看箭头所指部分,打马赛克的地方是因为内部驱动名称,所以暂时遮住,不影响分析。看第一个箭头部分,调用了down,也就是说是死锁了,down一直不返回,或者超时了。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注