盤點(diǎn)程序員寫過的驚天Bug:虧損30億、致6人死亡,甚至差點(diǎn)毀滅世界
本文經(jīng)AI新媒體量子位(ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處
博雯 發(fā)自 凹非寺
一個Bug就地蒸發(fā)5億美元;軟件設(shè)計層面出Bug致6人死亡;DeBug不成功直接世界毀滅。你職業(yè)生涯中寫過最大的Bug是什么?在這個問題上,勇敢的碼農(nóng)們,總是能不斷地創(chuàng)造奇跡。這不禁讓路過的一位普通市民感嘆:
感覺有你們,我們還活在這個世界就像死神來了
Bug很大,你忍一下
一個Bug到底能有多大?幾個歷史數(shù)據(jù)轉(zhuǎn)儲邏輯Bug或發(fā)貨邏輯Bug,就能讓幾十萬輕松蒸發(fā):你們這虧錢的Bug都灑灑水啦,寫B(tài)ug差點(diǎn)進(jìn)去的見過沒?馬上就有碼農(nóng)站出來表示不服,并表示自己參與開發(fā)的一款發(fā)薪軟件曾出現(xiàn)Bug,會導(dǎo)致發(fā)放的薪資變成雙倍,總共能多發(fā)2000多萬。當(dāng)時查出Bug的時候發(fā)薪單已經(jīng)生成,就差批量任務(wù)向銀行發(fā)起請求了!奇怪的勝負(fù)心就這么燃起來了。
一時間,什么水閘關(guān)不住、高鐵追尾、甚至差點(diǎn)導(dǎo)致非洲國家內(nèi)戰(zhàn)的Bug都來了。如果再放眼全球,你就會發(fā)現(xiàn)——Bug沒有最大,只有更大。
2016年時,Excel就出過一個致使上萬份遺傳基因?qū)W論文出錯的Bug。很多長得像日期表達(dá)的長基因名的縮寫(比如SEPT2、MARCH1),會在這一Bug的作用下被Excel自動轉(zhuǎn)化成日期格式:學(xué)術(shù)領(lǐng)域之外的Bug那就更牛逼了。
比如在1996年,歐洲運(yùn)載火箭Ariane 5在發(fā)射37秒后當(dāng)場爆炸。一瞬間,70億美元的開發(fā)費(fèi)用全部木大,5億美元的設(shè)備原地蒸發(fā)。這一切都由一個整數(shù)溢出(Integer Overflow)的Bug引起。而如果翻開維基百科上的這份專門統(tǒng)計歷史上造成嚴(yán)重后果的Bug清單,沿著12個類別一個一個找下去,就會發(fā)現(xiàn)——
幾乎每一條Bug的背后都存在著千萬上億的金錢損失。有時,甚至?xí)硪馔馑劳觥?br>1985年到1987年間,由加拿大AECL公司開發(fā)的Therac-25放射線療法機(jī)器在軟件互鎖機(jī)制上出現(xiàn)了Bug,從而使輻射能量變成了正常劑量的100倍:最終,至少有6名來自美國和加拿大地區(qū)的患者由于遭受過量輻射而意外死亡。還有差點(diǎn)引發(fā)全球核戰(zhàn)爭的Bug:1983年蘇聯(lián)核警報誤報事件。
△蘇聯(lián)軍官Stanislav Yevgrafovich Petrov
在那一年的9月26日,蘇聯(lián)的雷達(dá)監(jiān)測到了5枚自美軍基地發(fā)射而來的導(dǎo)彈。而上圖的這位蘇聯(lián)軍官權(quán)衡再三,最終將這一導(dǎo)彈攻擊警告判斷為誤報,并沒有按照規(guī)定向上級匯報并申請反擊。事實(shí)證明,這次DeBug成功避免了地球Online在1983年就發(fā)生重啟。“不是Bug是特性”
看完了上面那些驚天大活兒,瞬間覺得郵件/短信連環(huán)CALL這種Bug都溫柔了許多。像這種由于抽獎程序Bug導(dǎo)致的社死,好像也不是個事兒了:而影響力又大,又沒有造成嚴(yán)重?fù)p失,甚至讓用戶拍手叫好的Bug也不是沒有。比如一到游戲圈,Bug就會自動改名為特性。
△原神魚竿Bug
某些知名游戲大廠甚至還會聯(lián)名發(fā)布Bug馬克杯,玩梗玩得飛起。還有玩家真情實(shí)感地表示:Bug正是游戲復(fù)雜規(guī)則和交互的體現(xiàn),我游YYDS!△《矮人要塞》貓咪離奇死亡事件
甚至在游戲行業(yè)之外,還有用戶在Bug被修復(fù)后憤怒投訴:△圖源知乎答主三和四保
最后,再回到“你的程序員生涯中寫過的最大Bug”這一問題上來。有回答選擇直接結(jié)束比賽:你們的程序員生涯中寫過的最大Bug是什么?——當(dāng)初選擇了做程序員。軟件Bug清單:
https://en.wikipedia.org/wiki/List_of_software_Bugs
參考鏈接:
https://www.zhihu.com/question/482967292END
來源:量子位版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。
▍