一行程式碼引發的”血案“!!!(軟體開發、專案管理、skycto JEEditor)
轉自:碼農翻身(微訊號:coderising)
今天想起來一件好玩的事, 給大家分享下。
事情發生在幾年前, 那時候大家忙活完一個新需求, 終於上線了, 都想鬆一口氣。
可是很快就發生了一件令人抓狂的事情, 剛上線的系統總是莫名其妙的崩潰, 每次都得重啟才能解決。
更要命的是完全摸不到規律, 系統執行著執行著就down了, 毫不留情面。
趕緊組織人員檢查, 開發人員拍著胸脯, 信心滿滿: 肯定不是我們的問題! 先查查是不是環境的問題!
記憶體使用, 正常 。
硬碟空間,正常。
檢查日誌, 正常, 更找不到什麼OutofMemory。
難道是駭客入侵,工程師仔細檢查系統日誌,也沒有什麼蛛絲馬跡。 我們的系統也不涉及到錢, 根本不值得入侵。
可是系統總是那麼靜悄悄的,冷酷的down機, 快把大家都逼瘋了。
如果是你該怎麼辦?
懷疑了一圈別人的問題以後,最好也懷疑一下自己。
我們就開始嚴格的審查這個新需求新加的,和改動的程式碼,10幾雙眼睛不知道看了多少遍, 還是一無所獲。
後來不知道是誰,偶然看到了程式中有這麼一行可怕的程式碼: System.exit(1) , 然後趕緊檢查它和這個改動的關係。
果然, 在改動之前,這行程式碼永遠都不會被執行到, 相當於死程式碼,它就像個陷阱躺著那裡, 一動不動至少有5年了!
現在終於等來了被觸發的一刻:雖然我們的這次改動離這個 陷阱極其遙遠, 但的確會導致程式會在某種情況下進入這一分支, 於是System.exit(1); 被執行, 陷阱觸發。 JVM悄無聲息的退出了 !
重啟系統, 還會進入這一分支,System.exit, 系統再次退出 ?
就這麼週而復始, 把我們這幫碼農戲耍了好幾天 ?
所以各位同學,以後不要輕易使用System.exit了, 建議你也馬上搜尋一下你的專案, 看看有沒有System.exit這個 陷阱吧。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947338/viewspace-2656366/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 小白科普:敏捷軟體開發(skycto JEEditor)敏捷
- [WCF]缺少一行程式碼引發的血案行程
- jvm的記憶體引數配置(skycto JEEditor)JVM記憶體
- 小軟體專案開發的管理
- 軟體開發的專案管理(轉)專案管理
- 敏捷開發專案管理軟體敏捷專案管理
- 小軟體專案開發的管理 (轉)
- 小軟體專案開發的管理(轉)
- 軟體開發中的專案管理(轉)專案管理
- 軟體開發專案的風險管理(轉)
- JDBC亂碼引發的"血案"JDBC
- 行軟體開發中的專案管理 (轉)專案管理
- 團隊開發_軟體專案風險管理
- 中小型軟體開發專案管理專案管理
- 分析如何使用專案管理軟體管理軟體開發團隊專案管理
- 軟體開發公司的專案管理怎麼做專案管理
- 有誰開發過專案管理的軟體嗎?專案管理
- 軟體開發專案的需求管理簡述(Z)
- 管理軟體開發專案關鍵風險 (轉)
- 軟體專案開發流程
- 如何避免軟體開發專案中的需求管理陷阱?
- 軟體開發中專案管理的注意事項(轉)專案管理
- 軟體專案管理的研究及在專案開發中的應用專案管理
- 軟體開發專案管理經驗分享:專案全生命週期管理專案管理
- 敏捷開發詳解(含義、原則、目標、機制、skycto JEEditor)敏捷
- .Net版本引發的血案
- 產品發版管理用的專案管理軟體專案管理
- 一行程式碼引發的恐懼行程
- 2022國產敏捷開發專案管理軟體敏捷專案管理
- 專訪思泉軟體:專注低程式碼開發平臺開發,助力企業一體化、智慧化管理
- git merge使用不當引發的程式碼丟失血案Git
- RestTemplate超時引發的血案REST
- SwipeRefreshLayout 引發的一場血案
- 試論中小軟體企業專案開發中的風險管理
- 低程式碼開發對軟體開發流程的影響
- 控制檔案不一致引發的“血案”
- 離岸專案開發的管理
- 軟體開發:app軟體開發,pc端軟體開發,微商城/小程式開發APP