You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RHEL8运行程序时内核崩溃,如何定位报错代码行?

内核崩溃故障分析与排查建议

问题描述

我对内核了解不多,不知道怎么排查故障。系统发生内核崩溃,以下是vmcore-dmesg.txt日志内容:

dmesg日志(已翻译)

[  378.442884] SPDMD-LUN:[错误]lun_del:2218 设备 nvfile-mgmtd-0 正忙 :2
[  424.511211] XFS (nvfile-storage-0): 挂载V5文件系统
[  424.513045] XFS (nvfile-storage-2): 挂载V5文件系统
[  424.538953] XFS (nvfile-storage-2): 开始恢复(日志设备:内部)
[  424.546536] XFS (nvfile-storage-2): 结束恢复(日志设备:内部)
[  425.512217] XFS (nvfile-storage-0): 开始恢复(日志设备:内部)
[  425.518929] XFS (nvfile-storage-1): 挂载V5文件系统
[  425.520813] XFS (nvfile-storage-3): 挂载V5文件系统
[  426.288987] XFS (nvfile-storage-3): 开始恢复(日志设备:内部)
[  426.475465] XFS (nvfile-storage-1): 开始恢复(日志设备:内部)
[  427.496551] XFS (nvfile-storage-0): 结束恢复(日志设备:内部)
[  428.320932] XFS (nvfile-storage-3): 结束恢复(日志设备:内部)
[  428.977479] XFS (nvfile-storage-1): 结束恢复(日志设备:内部)
[  445.927118] 错误:无法处理内核空指针解引用,地址 0000000000000008
[  445.927685] PGD 0 P4D 0
[  445.928216] Oops: 0000 [#1] SMP NOPTI
[  445.928723] CPU: 4 PID: 591 进程名: kworker/u193:1 Kdump已加载 污点标记: G           OE    --------- -  - 4.18.0-305.el8.x86_64 #1
[  445.929735] 硬件信息: Lenovo ThinkSystem SR860 V2/7Z60CTO1WW, BIOS M5E118K-1.52 08/06/2021
[  445.930305] 工作队列: xfs-cil/nvfile-storage- xlog_cil_push_work [xfs]
[  445.930910] RIP: 0010:blk_queue_split+0x1c6/0x660
[  445.933048] 代码: c0 45 31 f6 89 44 24 44 89 7c 24 40 31 ff 85 db 0f 84 56 04 00 00 8b 44 24 44 48 89 c1 48 89 44 24 30 48 c1 e1 04 49 03 4d 78 <8b> 41 08 8b 71 0c 48 8b 11 44 29 f8 39 d8 48 89 54 24 48 0f 47 c3
[  445.936323] RSP: 0018:ffffbcbf9a4bfaf8 EFLAGS: 00010246
[  445.936711] RAX: 0000000000000000 RBX: 0000000000003000 RCX: 0000000000000000
[  445.937028] RDX: 0000000000000018 RSI: 0000000000000018 RDI: 0000000000000000
[  445.937343] RBP: ffffbcbf9a4bfb90 R08: 0000000000000000 R09: ffff940c1965d700
[  445.937659] R10: 0000000000000000 R11: 0000000000000000 R12: ffff94ca6f590000
[  445.937979] R13: ffff940bda0ddc80 R14: 0000000000000000 R15: 0000000000000000
[  445.938304] FS:  0000000000000000(0000) GS:ffff940effd00000(0000) knlGS:0000000000000000

故障核心分析

  • 崩溃根源:内核空指针解引用,发生在blk_queue_split+0x1c6/0x660函数中,代码尝试访问地址0x8的内容,但对应的指针为NULL。
  • 触发路径:由XFS文件系统的xlog_cil_push_work工作队列触发,该进程负责XFS日志提交,结合之前的XFS挂载、恢复操作,推测和nvfile系列存储设备的IO处理逻辑相关。
  • 前置异常:崩溃前出现SPDMD-LUN错误,提示nvfile-mgmtd-0设备在删除LUN时处于忙状态,这可能是设备状态异常的信号,进而引发后续IO处理出错。

排查与修复步骤

  1. 升级内核补丁:当前内核版本为4.18.0-305.el8.x86_64,查询该版本是否存在XFS或块设备相关的空指针解引用已知BUG,优先升级到同分支的最新稳定内核版本。
  2. 检查存储设备状态:查看nvfile-mgmtd服务的运行日志,确认是否存在设备连接异常、IO超时等问题;用smartctl工具检测NVMe硬件是否存在故障。
  3. 修复XFS文件系统:系统恢复后,对所有nvfile-storage-X分区执行xfs_repair命令,排查并修复文件系统损坏问题。
  4. 完整内核崩溃分析:配置kdump收集完整vmcore文件,使用crash工具加载vmcore和对应内核调试包,分析完整调用链,定位具体为空的指针及触发逻辑。

内容的提问来源于stack exchange,提问作者Lemon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 00:01:15