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