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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM