วิธีแก้ไข“ BUG: soft lockup - CPU # 0 ค้างอยู่ที่ 17163091968s”?


14

UPDATE:ฉันปรับปรุงชื่อของข้อความเพราะผมเคยเห็นเมื่อเร็ว ๆ 17163091968sนี้มากขึ้นของปัญหาเหล่านี้มีจำนวนนี้เวลาที่แน่นอนของ สิ่งนี้จะช่วยให้ผู้คนตรวจสอบอาการเพื่อค้นหาหน้านี้ ดูคำตอบที่ฉันยอมรับได้ด้วยตนเองด้านล่าง


ฉันได้ Ubuntu 644 LTS VM จำนวน 64 บิตในศูนย์ข้อมูล VMware vSphere ติดตั้งเครื่องมือ VMware แล้ว (ลูกค้า vSphere ระบุว่า "ตกลง")

ฉันเคยเห็นบางส่วนของ VM ค้างสองสามครั้งด้วยข้อผิดพลาดต่อไปนี้ใน syslog เมื่อตรวจสอบสถานการณ์จาก vSphere คอนโซลนั้นเป็นสีดำและคำสั่ง "แขกรีบูต" ไม่ได้ทำอะไรเลยดังนั้นฉันจึงต้องเปิดวงจร VM

Dec  1 11:44:15 s0 kernel: [18446744060.007150] BUG: soft lockup - CPU#0 stuck for 17163091988s! [jed:26674]
Dec  1 11:44:15 s0 kernel: [18446744060.026854] Modules linked in: btrfs zlib_deflate crc32c libcrc32c ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs exportfs reiserfs xt_tcpudp iptable_filter ip_tables x_tables acpiphp fbcon tileblit font bitblit softcursor ppdev vga16fb psmouse parport_pc shpchp vgastate i2c_piix4 lp parport serio_raw intel_agp floppy mptspi mptscsih vmw_pvscsi e1000 mptbase
Dec  1 11:44:15 s0 kernel: [18446744060.026899] CPU 0:
Dec  1 11:44:15 s0 kernel: [18446744060.026900] Modules linked in: btrfs zlib_deflate crc32c libcrc32c ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs exportfs reiserfs xt_tcpudp iptable_filter ip_tables x_tables acpiphp fbcon tileblit font bitblit softcursor ppdev vga16fb psmouse parport_pc shpchp vgastate i2c_piix4 lp parport serio_raw intel_agp floppy mptspi mptscsih vmw_pvscsi e1000 mptbase
Dec  1 11:44:15 s0 kernel: [18446744060.026920] Pid: 26674, comm: jed Not tainted 2.6.32-30-server #59-Ubuntu VMware Virtual Platform
Dec  1 11:44:15 s0 kernel: [18446744060.026922] RIP: 0033:[<00007f92e03d2ce6>]  [<00007f92e03d2ce6>] 0x7f92e03d2ce6
Dec  1 11:44:15 s0 kernel: [18446744060.026930] RSP: 002b:00007fff6069b770  EFLAGS: 00000202
Dec  1 11:44:15 s0 kernel: [18446744060.026932] RAX: 00007f92e27e7e10 RBX: 00007f92e06d5e40 RCX: 0000000000020000
Dec  1 11:44:15 s0 kernel: [18446744060.026933] RDX: 00007f92e27e7e10 RSI: 0000000000020209 RDI: 0000000000000002
Dec  1 11:44:15 s0 kernel: [18446744060.026934] RBP: ffffffff81013cae R08: 0000000000000001 R09: 0000000000000000
Dec  1 11:44:15 s0 kernel: [18446744060.026935] R10: 00007f92e06d6398 R11: 0000000000000870 R12: 00000000000000c0
Dec  1 11:44:15 s0 kernel: [18446744060.026937] R13: 00007f92e299dca0 R14: 0000000000000020 R15: 00007f92e06d5e40
Dec  1 11:44:15 s0 kernel: [18446744060.026939] FS:  00007f92e105b700(0000) GS:ffff880009c00000(0000) knlGS:0000000000000000
Dec  1 11:44:15 s0 kernel: [18446744060.026940] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Dec  1 11:44:15 s0 kernel: [18446744060.026941] CR2: 00007ff12ea15000 CR3: 0000000267067000 CR4: 00000000000006f0
Dec  1 11:44:15 s0 kernel: [18446744060.026968] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Dec  1 11:44:15 s0 kernel: [18446744060.026989] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Dec  1 11:44:15 s0 kernel: [18446744060.026991] Call Trace:

(ไม่มีร่องรอย - นั่นคือบรรทัดสุดท้าย)

ฉันดูเหมือนจะไม่ได้มีข้อผิดพลาดอื่น ๆ อีกต่อไป แต่ฉันค่อนข้างมั่นใจว่ากระบวนการดังกล่าวข้างต้น ( jed) แตกต่างจากการถ่ายโอนข้อมูลอื่น ๆ

  • สิ่งที่อาจทำให้เกิดปัญหานี้?

  • วิธีการป้องกันไม่ให้เกิดขึ้น?

ข้อมูลพิเศษบางอย่าง:

  • ค่า17163091988เป็นบิตที่น่าสงสัย (เล่นสำนวนเจตนา) - มัน1111111111000000000000000000010100อยู่ในไบนารี ข้อผิดพลาดอาจจะพยายามพูด20วินาที (เป็น10100เลขฐานสอง)?

  • ฉันไม่แน่ใจว่าปัญหานี้เกิดขึ้นกับเคอร์เนล 10.04 ล่าสุดหรือไม่ (2.6.32-35)

  • ฉันเคยเห็นtask ... blocked for more than 120 secondsปัญหาด้วย - บางทีพวกเขาอาจเกี่ยวข้องกัน

  • ไคลเอ็นต์ vSphere ไม่แสดงการเตือนหรือการย้ายข้อมูลสำหรับ VM


อาจจะมีบางสิ่งผิดปกติ clocksourceคุณสามารถเล่นกับ นอกจากนี้ C-state ของ CPU ก็เป็นสิ่งที่ดีเช่นกัน
SaveTheRbtz

คำตอบ:


12

ขอบคุณผู้แสดงความคิดเห็นทั้งหมด ฉันคิดว่าฉันพบคำตอบ ดูเหมือนว่าจะมีข้อผิดพลาดการจับเวลาในเคอร์เนลเวอร์ชันของ Ubuntu อย่างน้อย 2.6.32-30- เซิร์ฟเวอร์ ข้อผิดพลาดบางครั้ง (?) ฆ่าเครื่องเมื่อพวกเขามาถึง uptime ประมาณ 200..210 วัน จริงๆแล้วหยุดไม่ได้เกิดขึ้นทันทีหลังจากที่ถึงขีด จำกัด แต่จะถูกเรียกโดยการดำเนินการบางอย่าง (ในกรณีของฉัน: apt-get install ...)

NB: 200 วันประมาณ 2 ^ 32 ครั้ง 1/250 วินาทีและ 250 เป็นค่าเริ่มต้นสำหรับ CONFIG_HZ

สำหรับตอนนี้ฉันยังไม่พบข้อมูลว่ามีการแก้ไขปัญหาในเมล็ดล่าสุดหรือไม่ ฉันรู้ว่ามันดูเหมือนจะไม่ส่งผลกระทบต่อเคอร์เนลรุ่นเก่า (2.6.32-26- เซิร์ฟเวอร์) จากข้อมูลทั้งหมดนี้ฉันเชื่อว่าหากยังไม่ได้รับการแก้ไขก็สามารถหลีกเลี่ยงได้โดย:

  • บูตเครื่องทุก ๆ 190 วัน (เป็นความคิดที่ดีสำหรับการอัพเกรดเคอร์เนลอยู่ดี)
  • ปรับ CONFIG_HZ เป็น 100 และทำให้ทุก 497 วัน อย่างไรก็ตามสิ่งนี้อาจมีผลข้างเคียงที่ไม่คาดคิดโดยเฉพาะในสภาพแวดล้อมเสมือน และมันก็ไม่ได้แก้ปัญหา

นี่คือรายงานข้อผิดพลาดสำหรับ Ubuntu


หาได้ดี - สงสัยว่ามันจะ
เล็ดลอด

หมดความอยากรู้: คุณใช้ NTP หรือการซิงโครไนซ์เวลาผ่าน vmware หรือไม่ ดูเหมือนว่าการเปลี่ยนเวลาคงที่หรืออะไรทำนองนั้น .. ควรมีการบันทึกรายการการเลื่อนเวลาใน syslog
pauska

ฉันเพิ่งเห็นบางสิ่งที่มีลักษณะเกี่ยวข้องกับ debian, เคอร์เนล 2.6.32-5-amd64 แสดงซอฟต์ล็อคสองอันซึ่งทำงาน "ผิดปกติ"
James

5

นี่เป็นข้อผิดพลาดเคอร์เนลที่ได้รับการแก้ไขโดยการยอมรับเคอร์เนลต่อไปนี้:

http://git.kernel.org/?p=linux/kernel/git/tip/tip.git;a=commit;h=4cecf6d401a01d054afc1e5f605bcbfe553cb9b9

คุณสามารถค้นหา LKML สำหรับชื่อต่อไปนี้ (ไม่สามารถโพสต์มากกว่า 2 ลิงก์): [เสถียร] 2.6.32.21 - ข้อผิดพลาดเกี่ยวกับสถานะการออนไลน์?

และนี่คือข้อผิดพลาด LP # ที่ทำให้การแก้ไขเคอร์เนล:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/902317

การอัพเกรดเป็นเคอร์เนลล่าสุดใน lucid-updates ควรแก้ไขปัญหานี้ให้ดี

HTH


2

เป็นไปได้ไหมที่โฮสต์ virtualisation มีคุณสมบัติประหยัดพลังงาน ("Green IT") เปิดใช้งานที่สามารถส่งแกนที่ไม่ได้ใช้ไปยังโหมดพลังงานต่ำ / สลีปทำให้เกิดการหยุดชะงักที่น่าสนใจใน VMs โดยใช้แกนกลางนั้น ฉันเคยได้ยินเรื่องนี้เคยเป็นปัญหาส่วนใหญ่ในสภาพแวดล้อม HyperV แต่มันอาจเป็นสิ่งที่มองเข้าไป


1

ในกรณีที่คนอื่นพบสิ่งนี้อัพเกรดเคอร์เนลแก้ไขปัญหาที่คล้ายกันสำหรับฉัน ฉันมี JBOD ที่เชื่อมต่อกับระบบผ่านตัวควบคุม SAS3 โดยโยนข้อผิดพลาดของ CPU Softlock เหล่านี้ตอนบูต

ฉันมี Ubuntu 14.04.2 kernel รุ่น 3.16.0-30, และทำการ "apt -y upgrade" จบลงที่ kernel 3.16.0-49, และนั่นแก้ปัญหาได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.