[683650.031028] BUG: unable to handle kernel paging request at 000000000001b790-----------------------------地址错误
[683650.031060] IP: [<ffffffff94b13520>] native_queued_spin_lock_slowpath+0x110/0x200
[683650.031089] PGD 8000005f702d4067 PUD 510c27a067 PMD 0
[683650.031109] Oops: 0002 [#1] SMP
[683650.031567] CPU: 40 PID: 474165 Comm: dfget Kdump: loaded Tainted: G ------------ T 3.10.0-957.27.2.el7.x86_64 #1
[683650.031599] Hardware name: Dell Inc. PowerEdge R640/0RJCR7, BIOS 1.6.13 12/17/2018
[683650.031621] task: ffff8d37d86ac100 ti: ffff8d4adbbdc000 task.ti: ffff8d4adbbdc000
[683650.031643] RIP: 0010:[<ffffffff94b13520>] [<ffffffff94b13520>] native_queued_spin_lock_slowpath+0x110/0x200
[683650.031673] RSP: 0018:ffff8d4adbbdfea0 EFLAGS: 00010006
[683650.031689] RAX: 000000000000175f RBX: ffff8d37d86ac100 RCX: 0000000001410000
[683650.031709] RDX: 000000000001b790 RSI: 00000000bafb5140 RDI: ffff8d88afab1048----------这个就是sighand_struct.siglock
[683650.031729] RBP: ffff8d4adbbdfea0 R08: ffff8d58bdf1b780 R09: 0000000000000000
[683650.031749] R10: 0000000000000008 R11: 0000000000000206 R12: ffff8d4adbbdfef0
[683650.031769] R13: 0000000000000000 R14: 0000000000000002 R15: 0000000000000000
[683650.031789] FS: 00007fb5b67fc700(0000) GS:ffff8d58bdf00000(0000) knlGS:0000000000000000
[683650.031812] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[683650.031828] CR2: 000000000001b790 CR3: 0000005f757a8000 CR4: 00000000007607e0
[683650.031849] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[683650.031869] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[683650.031889] PKRU: 55555554
[683650.031898] Call Trace:
[683650.031912] [<ffffffff9515e2cb>] queued_spin_lock_slowpath+0xb/0xf
[683650.031935] [<ffffffff9516c6a8>] _raw_spin_lock_irq+0x28/0x30
[683650.031955] [<ffffffff94ab0a97>] __set_current_blocked+0x37/0x70
[683650.031974] [<ffffffff94ab0c67>] sigprocmask+0x77/0xb0
[683650.032768] [<ffffffff94ab0d32>] SyS_rt_sigprocmask+0x92/0x100
[683650.033480] [<ffffffff95176ddb>] system_call_fastpath+0x22/0x27
[683650.034184] Code: 87 47 02 c1 e0 10 45 31 c9 85 c0 74 44 48 89 c2 c1 e8 13 48 c1 ea 0d 48 98 83 e2 30 48 81 c2 80 b7 01 00 48 03 14 c5 a0 bf 74 95 <4c> 89 02 41 8b 40 08 85 c0 75 0f 0f 1f 44 00 00 f3 90 41 8b 40
[683650.035684] RIP [<ffffffff94b13520>] native_queued_spin_lock_slowpath+0x110/0x200
[683650.036404] RSP <ffff8d4adbbdfea0>
[683650.037151] CR2: 000000000001b790

根据内核代码分析,对应的sighand_struct.siglock值不正确,导致异常。

crash> sighand_struct.siglock 0xffff8d88afab0840 -x
siglock = {
{
rlock = {
raw_lock = {
val = {
counter = 0x1415140
}
}
}
}
}

按照qspinlock的布局,最后一个8位应该是1,然后如果有人在等待锁,pending位应该位1,其次会有等待的cpu的编号记录。但是根据多年排查crash的经验,明显这个值是异常的。

由于这个是一把sighand公共锁,所以打印其他线程的锁如下:

crash> task_struct.sighand ffff8d88983da080
sighand = 0xffff8d88afeb0840-------------------------e就是1110
crash> task_struct.sighand ffff8d88983d8000
sighand = 0xffff8d88afeb0840
crash> task_struct.sighand ffff8d37d86ac100
sighand = 0xffff8d88afab0840------------------------a就是1010

仔细一点可以看出,这把锁发生了bit位翻转。这种情况等锁,就像在公交车站等一艘船,可能也就武汉能偶尔等到。

另外,这个bit翻转在ipmi和mce中都未看到异常。

硬件错误导致的crash的更多相关文章

  1. Linux在fstab中因配置错误导致服务器主机无法重启的问题应该如何解决

    fstab中配置错误导致系统无法启动的恢复方案 1制造错误的案例发生,在/etc/fstab中配置如下内容 结尾的倒数第一个为1表示进行磁盘检查,为0表示不进行磁盘检查,倒数第二个为0表示不备份,为1 ...

  2. ORA-04031错误导致宕机案例分析

    今天遇到一起ORACLE数据库宕机案例,下面是对这起数据库宕机案例的原因进行分析.解读.分析过程中顺便记录一下这个案例的前因后果,攒点经验值,培养一下分析.解决问题的能力. 案例环境:   操作系统 ...

  3. ruby -- 问题解决(四)编码错误导致无法显示(2)

    从数据库中取得数据显示时报 incompatible character encodings: GBK and ASCII-8BIT或 incompatible character encodings ...

  4. 两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错

    遇到了两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错 首先第一个: 在做一个用ajax图片上传的功能中,php报了这样一个错误:File upload error - u ...

  5. 案例:Standby RAC遭遇ORA-1157,1111,1110导致实例crash处理

    案例:Standby RAC遭遇ORA-1157,1111,1110导致实例crash处理 环境:RHEL 6.5 + Oracle RAC 11.2.0.4 + Dataguard 今天在实验环境的 ...

  6. 给虚拟机添加新硬盘并分区,fdisk查看分区,分区,重新读取分区表信息partprobe,格式化,挂载,查看分区挂载信息,自动挂载文件/etc/fstab,/etc/fstab文件错误导致重启崩溃后的修复

    1.虚拟机关机断电 2.添加硬盘 2.开机 3.fdisk -l查看刚才新添加的硬盘 [root@localhost ~]# fdisk -l 磁盘 /dev/sda:21.5 GB, 2147483 ...

  7. 打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路3)

    续前一篇:打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路2)ok,到这里已经能够锁定范围了, ...

  8. 关于CALayer导致的crash问题

    push到一个页面进行绘图时,设置如下: CALayer * layer = [CALayer layer]; layer.frame = CGRectMake(, , , ); layer.dele ...

  9. linux异常处理:selinux配置错误导致无法重启

    点击返回自学Linux集锦 linux异常处理:selinux配置错误导致无法重启 一次linux无法重启异常记录: 当时第一反应就是梳理最近的配置变更,特别是能预知相关的就是selinux配置变更. ...

随机推荐

  1. Training loop Run Builder

    以下内容来自deeplizard pyorch_P31  

  2. TypeScript(4)接口

    介绍 TypeScript 的核心原则之一是对值所具有的结构进行类型检查.我们使用接口(Interfaces)来定义对象的类型.接口是对象的状态(属性)和行为(方法)的抽象(描述) 接口初探 声明接口 ...

  3. 用Python实时获取Steam特惠游戏数据,我看看谁的钱包还有钱

    前言 大家好鸭, 我是小熊猫 Steam大家应该不陌生吧?不知道的话就让我们来了解一下吧~(一下简称"S") S是由美国电子游戏商Valve于2003年9月12日推出的数字发行平台 ...

  4. Jenkins+Svn+Docker搭建持续集成环境 自动部署

    一.准备工作: 两台服务器:192.168.206.212,192.168.206.213 自己新建一个maven项目 其中两台机子做下面的软件配置 212机子: 安装expect并配置: 安装jen ...

  5. C4C UI Design背景色

  6. NC14662 小咪买东西

    NC14662 小咪买东西 题目 题目描述 小咪是一个土豪手办狂魔,这次他去了一家店,发现了好多好多( \(n\) 个)手办,但他是一个很怪的人,每次只想买 \(k\) 个手办,而且他要让他花的每一分 ...

  7. 《AlignedReID:Surpassing Human-Level Performance in Person Re-Identification》理解

  8. 常用的Linux命令和Git的必要配置

    常用的Linux命令平时一定要多使用这些基础的命令! 1.cd : 改变目录. 2.cd . . 回退到上一个目录,直接cd进入默认目录 3.pwd : 显示当前所在的目录路径. 4.ls(ll): ...

  9. C++记录一

    题目一: [描述] 比较两个整数之间的大于.小于.等于.不等于关系. [输入] 输入在一行中给出2个整数a和b. [输出] 分行输出整数a和b之间的大于.小于.等于.不等于关系. [输入示例] 5 3 ...

  10. 数据质量管理工具预研——Griffin VS Deequ VS Great expectations VS Qualitis

    开源数据质量管理工具预研--Griffin VS Deequ VS Great expectations VS Qualitis. 概述 ​ 数据质量监控(DQC)是最近很火的一个话题,也是数据治理中 ...