Linux Kernel 2.6.28 以上有BUG,系统运行第208.5天down机
简介:
业务服务器有一台服务器出现意外down机,服务器ping 不通、无法登陆,本想通过公司KVM系统登陆系统重启解决,登陆KVM后发现系统屏幕打印大量的内核错误,KVM无法使用、无法发送重启服务器。果断联系 机房人员帮助手工重启,手动重启服务器后服务器运行状态回归正常。
在服务器重启前通过KVM管理系统能看到系统屏幕上打印的内核错误,此时做了一个页面截屏,后根据屏幕打印的报错关键字,进行查找追踪发现原来我们的linux服务器内核bug问题导致。
此内核BUG问题会直接导致服务器down机,查找相关资料发现这个内核BUG存在相关触发条件,下面对个人收集整理的一些资料进行归纳,给大家借鉴。
1.官方描述:
sched_clock() overflow after 208.5 days in Linux Kernel

Linux Kernel 2.6.28版本以上内核存在此问题。
服务器出现故障时系统在屏幕上打印错误大致如下:

Jun 8 14:26:06 acme kernel: irq 19: nobody cared (try booting with the "irqpoll" option)
Jun 8 14:26:06 acme kernel: Pid: 0, comm: swapper Not tainted 2.6.32-220.7.1.el6.x86_64 #1
Jun 8 14:26:06 acme kernel: Call Trace:
Jun 8 14:26:06 acme kernel: <IRQ> [<ffffffff810db42b>] ? __report_bad_irq+0x2b/0xa0
Jun 8 14:26:06 acme kernel: [<ffffffff810db62c>] ? note_interrupt+0x18c/0x1d0
Jun 8 14:26:06 acme kernel: [<ffffffff810dbd4d>] ? handle_fasteoi_irq+0xcd/0xf0
Jun 8 14:26:06 acme kernel: [<ffffffff8100df09>] ? handle_irq+0x49/0xa0
Jun 8 14:26:06 acme kernel: [<ffffffff814f4dbc>] ? do_IRQ+0x6c/0xf0
Jun 8 14:26:06 acme kernel: [<ffffffff8100ba53>] ? ret_from_intr+0x0/0x11
Jun 8 14:26:06 acme kernel: [<ffffffff8100ba53>] ? ret_from_intr+0x0/0x11
Jun 8 14:26:06 acme kernel: <EOI> [<ffffffff812c4b0e>] ? intel_idle+0xde/0x170
Jun 8 14:26:06 acme kernel: [<ffffffff812c4af1>] ? intel_idle+0xc1/0x170
Jun 8 14:26:06 acme kernel: [<ffffffff813fa027>] ? cpuidle_idle_call+0xa7/0x140
Jun 8 14:26:06 acme kernel: [<ffffffff81009e06>] ? cpu_idle+0xb6/0x110
Jun 8 14:26:06 acme kernel: [<ffffffff814e5ffc>] ? start_secondary+0x202/0x245
Jun 8 14:26:06 acme kernel: handlers:
Jun 8 14:26:06 acme kernel: [<ffffffffa01e5020>] (rtl8169_interrupt+0x0/0x380 [r8169])
2.经查找资料分析此内核bug经查找资料有3个触发条件;
a:linux系统内核版本Linux Kernel 2.6.28版本以上(函2.8);
b.系统运行208天左右;
c.服务器使用Pentium 4 以上intel CPU(含CPU、32bit/64bit);
很悲催!我们的服务器上面条件全满足。
3.bug相关通报
版本是2011年发布的 如果没有打过补丁 应该没有修复这个bug
kernel-2.6.32-220.4.2.el6 centos在这个内核版本修复了这个bug
此缺陷在 Linux Kernel 2.6.32.50 / 3.0.13 / 3.1.5 已被修正。
3. 内核升级
经过排查排查发现我们好多服务器都满足上面的内核BUG触发条件,果断安排服务器计划,避免服务器意外DOWN机事情再次发生,下面是对相关操作进行简单记录,以供大家参考:
3.1:确认系统版本和内核版本
[root@slave2 ~]# uname -a
Linux slave2 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
[root@slave2 ~]# more /etc/redhat-release
CentOS release 6.2 (Final)
[root@slave2 ~]# more /proc/version
Linux version 2.6.32-220.el6.x86_64 (mockbuild@c6b18n3.bsys.dev.centos.org) (gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) #1 SMP Tue Dec 6 19:48:22 GMT 2011
[root@slave2 ~]#
3.2:内核升级:
我使用的是覆盖处理方式,执行如下命令;
yum update -y
升级完成,重启服务器新的内核版本才能生效。
init 6
3.3:检查升级结果:
[root@slave2 ~]# uname -a
Linux master 2.6.32-358.11.1.el6.x86_64 #1 SMP Wed Jun 12 03:34:52 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@slave2 ~]# more /etc/redhat-release
CentOS release 6.4 (Final)
[root@slave2 ~]# more /proc/version
Linux version 2.6.32-358.11.1.el6.x86_64 (mockbuild@c6b7.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Wed Jun 12 03:34:52 UTC 2013
系统重启完成后,通过查看发现内核版本已经升级到2.6.32-358,系统升级为6.4目前最新版本。
redhat官方发布消息:
https://rhn.redhat.com/errata/RHBA-2012-0124.html
centos官方发布消息
https://www.centos.org/modules/newbb/viewtopic.php?topic_id=42031
相关信息:
https://www.centos.org/modules/newbb/viewtopic.php?topic_id=42031
http://bugs.centos.org/view.php?id=4586#c14466
http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=46348
http://bugs.centos.org/view.php?id=5397
Linux Kernel 2.6.28 以上有BUG,系统运行第208.5天down机的更多相关文章
- 关于Linux Kernel 2.6.28 以上有缺陷,在第208.5天自行重啟的问题
今天看到一转帖如下: Linux Kernel 2.6.28 以上有缺陷,在第208.5天自行重啟 https://access.redhat.com/knowledge/solutions/ ...
- Linux硬件资源管理与外设设备使用、系统运行机制及用户管理
Linux硬件资源管理 PCI设备 显卡 $>>dmesg |grep -i vga[ 0.000000] Console: colour VG ...
- linux笔记:关机重启命令shutdown,系统运行级别init,退出登录logout
命令名称:shutdown功能:关机或重启用法:shutdown [选项] [时间]选项参数:-c 取消前一个关机命令-h 关机-r 重启时间格式:now 现在时:分 20:30其他:会正常关闭正在启 ...
- Linux Kernel代码艺术——系统调用宏定义
我们习惯在SI(Source Insight)中阅读Linux内核,SI会建立符号表数据库,能非常方便地跳转到变量.宏.函数等的定义处.但在处理系统调用的函数时,却会遇到一些麻烦:我们知道系统调用函数 ...
- ubuntu: qemu+gdb 调试linux kernel 学习笔记
声明: 本笔记内容并非本人原创,90%来自网络资料的整合.同时,由于自己是刚刚接触qemu & gdbserver remote debug,本文也就算不得教程,仅供有缘人参考而已. ---- ...
- linux kernel menuconfig【转载】
原文网址:http://www.cnblogs.com/kulin/archive/2013/01/04/linux-core.html Linux内核裁减 (1)安装新内核: i)将新内核copy到 ...
- Linux Kernel - Debug Guide (Linux内核调试指南 )
http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级 ...
- LINUX KERNEL SPINLOCK使用不当的后果
LINUX KERNEL SPINLOCK使用不当的后果 spinlock(自旋锁)是内核中最常见的锁,它的特点是:等待锁的过程中不休眠,而是占着CPU空转,优点是避免了上下文切换的开销,缺点是该CP ...
- Linux kernel中常见的宏整理
0x00 宏的基本知识 // object-like #define 宏名 替换列表 换行符 //function-like #define 宏名 ([标识符列表]) 替换列表 换行符 替换列表和标识 ...
随机推荐
- 菜鸟学java开篇
从事it工作已有接近两年的时间了, 一直从事的是php的工作, 一直都想学java ,原因就不多说了, 毕竟优秀的php程序员,都会是一个其他方面的高手, 例如java ,并不是说java有多好,ph ...
- Linux网络管理——ISO/OSI七层模型
1. 网络基础 1. 网络基础 1.1 iso/osi七层模型 事前声明: ISO:国际标准化组织 OSI:开放系统互联模型 IOS:苹果操作系统 但是在计算机网络当中,IOS是互联网操作系统,是思科 ...
- (转载) css实现小三角(尖角)
在各种网站里面,我们会经常看到类似于这样的尖角:(示例:新浪微博) 它实现的方式有多种,哪种才是最简单的?哪种才是最优秀的?首先我声明一下,我还不清楚这个东西具体叫什么名字(哪位知道还望告知),暂且叫 ...
- inline-block代替浮动布局float:left列表布局最佳方案
基于各位前辈的辛勤劳动,下面得出使用inline-block替换float:left;的最佳方案. html代码 <div class="list"> <ul&g ...
- 让2个并列的div根据内容自动保持同等高度js
有左右2个并列的div,2个div都不能限定高度.左div为导航,右div为内容.如何能让左div块自动获得和右div块相等的高度? 同时,也有网友提问到“如果右块高度比左块低,会不会导致左块的内容被 ...
- nodejs 下载网页及相关资源文件
功能其实很见简单,通过 phantomjs.exe 采集 url 加载的资源,通过子进程的方式,启动nodejs 加载所有的资源,对于css的资源,匹配css内容,下载里面的url资源 当然功能还是很 ...
- llinuxs介绍与常用命令
一.Linux系统概述1.计算机资源软件资源硬件资源操作系统2.操作系统WindowsMacOSLinuxUnix3.Linux含义狭义Linux:由Linus一段内核代码广义Linux:Linux厂 ...
- Delphi中methodaddress的汇编代码解析
class function TObject.MethodAddress(const Name: ShortString): Pointer;asm { -> EAX ...
- [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(五)
目的: 1. 了解PCI的基本知识,为完成watchdog的设备做准备. 准备知识: 简单的说,PCI 设备分3个空间. 配置空间,IO空间,内存地址空间. PCI设备厂家决定了外设是使用IO空间还是 ...
- struts漏洞修补过程之S2-016
Struts漏洞修补过程之S2-016.邪恶的Struts再次现身,这一次是远程执行漏洞.官方建议立即升级到2.3.15.1.真希望这是最后一次漏洞修补.下面是升级步骤. 1.升级到struts2.3 ...