Linux 系統報錯 rcu_preempt detected stalls on CPUs/tasks


說在前面的一些廢話:

這是什么錯誤我不知道,為什么出現我不知道!

那為什么還要把他寫出來了,只是因為這個錯誤遇到了,而且浪費了我很多時間和精力。

故事留給自己看,解決辦法就是,重新升級一下Linux系統內核。

這個問題出現在Reboot之后,不能進入不了系統,平均發生幾率是40次左右出現一次。

之后重新升級完內核后沒有出現。至於內核改了什么我也不知道。

Linux 系統報錯如下:

 

故事:

去年用C語言寫的軟件,過年客戶才真正用起來,結果接二連三的出現死機的問題.

懷疑是自己的程序寫的有問題,開始各種嘗試,自己也做各種耐久驗證,跑了半個月都沒有發現問題。

對於這些問題,也問了工控機的廠商,他們說是環境會有影響。

然后是我們的各種驗證,還好現場還有兩個正常運行的機器,

基於小白的基本驗證法則(對Linux系統僅限於簡單命令的操作):

1.我們把正常的和異常的機器進行交換,結果3天都沒事.

2.把我們驗證好的盒子寄給現場,進行更換。結果2個小時就掛了。

這是什么結論???

還要就在我們要飛到現場的時候,現場把更換下來盒子寄給了我們。

不管Linux的專業知識水平怎么樣,硬着頭皮上吧!

就連同事也覺得可能驗證不出來什么東西。

剛開始驗證風平浪靜,十幾次種操作的驗證,全都很正常,我也要放棄了,就像舌尖上的中國說的,“剩下的就交給時間了”。

一次不甘心的重啟后,異常再現了。這時感覺好像,everything is contorl~~~很是興奮!

這就是廠商的問題了,我很幸運,再十幾次的就出了這個異常,因為再后面的驗證中,反復重啟100次才出了這個異常。

其實這並不是什么高深的技術,我也不清楚內核里面到底改了什么,這個問題的發生機制是什么,

也沒有資格說廠商太不專業(因為我只是找到問題的人,最后解決問題的還是人家)?

只是記錄一下,這件事帶來的感觸。

1.面對別人的質疑---只能先自我懷疑,再自我肯定

動不動別人就是說程序寫的有問題,但沒有找到其他原因,你又不能說沒問題,只能一遍一遍的檢查程序,偶爾想到什么就趕快改上去驗證。

其實就是別人不說,我也在問自己到底那里的問題,只是一聽別人這么說我就有點火。

但是真的很幸運現場有兩台設備由於不是一批購買的,始終沒有出現問題,慢慢的我對程序還是有信心了。

2.好的點子,都是慢慢熬出來的

那時候對自己也沒有信心,不願想這件事,但是每天都要面對,現場說又壞了,雖然別人不要你賠償什么但總是感覺好像虧欠別人什么。

自己技術能力有限出現這個匪夷所思的問題,真的有種束手無策的感覺。這能從簡單的驗證下手,沒想到解決了。

當然這些想法不是憑空出現的,對於我這種想了10來天才出現。

3.什么才是真正的技術---真正的技術是沒有盡頭的探究,但現實的問題可能沒有那么復雜。

我這種三線程序的小程序員,只是技術上的搬運工,把別人現成的東西直接用。有些地方可能都沒看懂,速成式的學習,一知半解的應用。

但是在現場真的不是那么輕松了,出問題就要解決。你要對一知半解付出代價的!

不過別慌,基本的邏輯法則還是通用的,簡單的說:交換,再現,交給時間!

擴展來說:

交換排插原因,進行再現問題的各種模擬,如果短時間什么都不行只要別放棄,把問題交給時間肯定一天答案會出現再你面前!

對自己的程序需要不停的完善他,問自己那里還能做的更好!

 


免責聲明!

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



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