說在前面的一些廢話:
這是什么錯誤我不知道,為什么出現我不知道!
那為什么還要把他寫出來了,只是因為這個錯誤遇到了,而且浪費了我很多時間和精力。
故事留給自己看,解決辦法就是,重新升級一下Linux系統內核。
這個問題出現在Reboot之后,不能進入不了系統,平均發生幾率是40次左右出現一次。
之后重新升級完內核后沒有出現。至於內核改了什么我也不知道。
Linux 系統報錯如下:

故事:
去年用C語言寫的軟件,過年客戶才真正用起來,結果接二連三的出現死機的問題.
懷疑是自己的程序寫的有問題,開始各種嘗試,自己也做各種耐久驗證,跑了半個月都沒有發現問題。
對於這些問題,也問了工控機的廠商,他們說是環境會有影響。
然后是我們的各種驗證,還好現場還有兩個正常運行的機器,
基於小白的基本驗證法則(對Linux系統僅限於簡單命令的操作):
1.我們把正常的和異常的機器進行交換,結果3天都沒事.
2.把我們驗證好的盒子寄給現場,進行更換。結果2個小時就掛了。
這是什么結論???
還要就在我們要飛到現場的時候,現場把更換下來盒子寄給了我們。
不管Linux的專業知識水平怎么樣,硬着頭皮上吧!
就連同事也覺得可能驗證不出來什么東西。
剛開始驗證風平浪靜,十幾次種操作的驗證,全都很正常,我也要放棄了,就像舌尖上的中國說的,“剩下的就交給時間了”。
一次不甘心的重啟后,異常再現了。這時感覺好像,everything is contorl~~~很是興奮!
這就是廠商的問題了,我很幸運,再十幾次的就出了這個異常,因為再后面的驗證中,反復重啟100次才出了這個異常。
其實這並不是什么高深的技術,我也不清楚內核里面到底改了什么,這個問題的發生機制是什么,
也沒有資格說廠商太不專業(因為我只是找到問題的人,最后解決問題的還是人家)?
只是記錄一下,這件事帶來的感觸。
1.面對別人的質疑---只能先自我懷疑,再自我肯定
動不動別人就是說程序寫的有問題,但沒有找到其他原因,你又不能說沒問題,只能一遍一遍的檢查程序,偶爾想到什么就趕快改上去驗證。
其實就是別人不說,我也在問自己到底那里的問題,只是一聽別人這么說我就有點火。
但是真的很幸運現場有兩台設備由於不是一批購買的,始終沒有出現問題,慢慢的我對程序還是有信心了。
2.好的點子,都是慢慢熬出來的
那時候對自己也沒有信心,不願想這件事,但是每天都要面對,現場說又壞了,雖然別人不要你賠償什么但總是感覺好像虧欠別人什么。
自己技術能力有限出現這個匪夷所思的問題,真的有種束手無策的感覺。這能從簡單的驗證下手,沒想到解決了。
當然這些想法不是憑空出現的,對於我這種想了10來天才出現。
3.什么才是真正的技術---真正的技術是沒有盡頭的探究,但現實的問題可能沒有那么復雜。
我這種三線程序的小程序員,只是技術上的搬運工,把別人現成的東西直接用。有些地方可能都沒看懂,速成式的學習,一知半解的應用。
但是在現場真的不是那么輕松了,出問題就要解決。你要對一知半解付出代價的!
不過別慌,基本的邏輯法則還是通用的,簡單的說:交換,再現,交給時間!
擴展來說:
交換排插原因,進行再現問題的各種模擬,如果短時間什么都不行只要別放棄,把問題交給時間肯定一天答案會出現再你面前!
對自己的程序需要不停的完善他,問自己那里還能做的更好!
