一字之差,AWS服務中斷

正所謂無BUG不生活,從你含辛茹苦地碼著第一行代碼開始,bug就如影隨形。

其實,bug 被自己或者是測試人員發現都是好事;但如果是被用戶發現,又或者導致了客戶和公司的鉅額損失……這些未知後果,就如同懸在頭頂的一把利刃,讓人脊背發涼……

但一個小小的bug,可能帶給你驚嚇,也可能帶來驚喜。接下來,我們就來看看 bug 都能帶來哪些意想不到的影響呢?


一字之差,AWS服務中斷


1 來自 Amazon 的聖誕大禮包~


一字之差,AWS服務中斷

2014年的12月,英國的 Robert Quinn 收到了50多個包裹!

但這並非是他前一晚血拼剁手的後果,而是 Amazon的電腦出包將退貨到倉庫的包裹錯寄到了他家!擔心退貨者收不到錢款的Robert 前後三次聯繫Amazon。

但是Amazon 給他的回覆卻是:這麼多東西錯寄過來給你添麻煩了吧!這些東西你可以留著,送你了!

事實上,Amazon 錯送包裹的情況時有發生,而根據美國聯邦貿易委員會(FTC)規定,如果是零售商的錯,你就可以保留該商品。如果你不想要也可以退貨,Amazon理應為返航買單;如果你留下它,你可以送給朋友,捐給慈善機構,甚至是掛在網上出售~~


2 就當一晚的土豪~


一字之差,AWS服務中斷


1999年1月1日,歐洲19個國家引入歐元,取代本國貨幣。在葡萄牙,1 歐元值 200 埃斯庫多(葡萄牙貨幣單位)。

新年前夕,一位葡萄牙網友的銀行賬戶裡有1,500,000埃斯庫多;第二天的戶頭裡理應是7500歐元。然而此時,他的銀行賬戶裡卻有 **1,500,000 歐元,是之前的整整 200倍!!!**這時,銀行突然之間如蟻附羶,視他如皇親貴胄。

於是1月6日,這位網友收到了一封銀行CEO親自簽署的郵件,邀他參加一個私人歌劇晚會,著燕尾服,時間是週末。

這位網友表示,他知道這筆鉅額財富最多是黃粱一夢,但是這個晚會實在讓人心馳神往,不能不去!所以他回信了,並幫同事和朋友們索要了額外的入場券。果然,他接到了CEO秘書打來的電話,他們表示非常樂意提供更多的入場券。

這位“一晚的土豪”表示:“其實歌劇表演得並不太好,好在魚子醬和香檳讓我不虛此行。”

但不久之後,他的銀行餘額被更正了,遂再也沒接到過CEO的電話了~

3 鳥叔讓 YouTube 被迫升級計數系統


一字之差,AWS服務中斷

2014年,鳥叔的《江南style》震動Google。

當年 YouTube的計數上限為32比特的整數,這意味著可顯示的最大計數值為2,147,483,647。此前從未有一個視頻播放量超過YouTube預設的上限。直到這首《江南 style》讓播放量在某個瞬間變成了-2142871897,終於讓google慌了神。

YouTube說:“我們從來沒想過有哪個視頻的播放率會超過32位整型數據的最高值,直到我們遇到了Psy。”

就這樣,YouTube被迫升級了計數系統到 9,223,372,036,854,775,808,即9個Quintillion(九百億億,9×1018)以上。

4 萬死難辭其咎!我應該更新代碼的……

一字之差,AWS服務中斷

阿麗亞娜火箭墜毀居然是因為軟件代碼沒有測試、更新?!

1996年6月4日,阿麗亞娜5型運載火箭原計劃將運送4顆太陽風觀察衛星到預定軌道,但因軟件問題,火箭在發射後偏軌激活了自我摧毀裝置。就在剎那間,阿5型火箭和其他衛星燃為灰燼。

然而事故的原因卻是:代碼重用! 在二者的飛行條件截然不同的情況下,阿5型的發射系統代碼仍然直接重用了阿4型的相應代碼。雖然該代碼在阿4型上是完美運行,但卻從未在阿5型上進行過測試。

事實證明,阿4型往舊軟件(SRI)輸入的是16位元整數數據,阿5型往SRI 輸入的是64位元浮點數數據,數據轉換時溢出。

此次事故損失3.7億美元。

5 一個“/”鍵,封鎖了整個互聯網


一字之差,AWS服務中斷

2010年1月31日,Google 封鎖了整個互聯網。

Google 向來都保護著我們免受惡意軟件和病毒感染的網站的侵擾;它與stopbadware合作,監視著危險的惡意軟件/病毒/軟件,並時刻更新標記網站列表。

而這一次,將站點添加到標記的列表程序員在本該輸入URL的位置,不小心地輸了“/”。

因為這一疏漏,互聯網上所有的網站都被標記為危險。

故障持續了40分鐘,損失30億美元。

7 一字之差,AWS服務中斷


一字之差,AWS服務中斷

由於為不少大型網站和應用提供雲服務支持,AWS(Amazon Web Services)可以說是互聯網的主心骨。

2017年2月28日,亞馬遜(S3)團隊當時在調試一個問題,該問題導致S3計費系統的處理速度比預期慢。

一名獲得授權的S3團隊成員要使用事先編寫的playbook執行一條命令,該命令旨在為S3計費流程使用的其中一個S3子系統刪除少量服務器。

不幸的是,他在輸入命令時……輸錯了一個字母!

結果刪除了一大批本不該刪除的服務器。不小心刪除的服務器支持另外兩個S3的索引子系統和佈置子系統。刪除相當大一部分的容量導致這每個系統都需要完全重啟。

而這一故障持續了大約4個小時,影響了數千個在線服務,其中包括 Netflix、Airbnb、Slack、Spotify、雅虎網絡郵箱等互聯網服務。


8 0.000000095帶來的愛國者之殤


一字之差,AWS服務中斷

1991年2月25日,海灣戰爭期間,在沙特阿拉伯的達蘭,美國的“愛國者”系統未能追蹤並攔截一枚伊拉克飛毛腿導彈。

“愛國者”導彈防禦系統工作流程是:探索階段、驗證階段、跟蹤階段,在跟蹤階段會等對方的導彈進行攔截。但如果“愛國者”持續工作超過8小時,射程就會偏離正常位置20%;這雖然是個已知的bug,但美國軍方不認為“愛國者”導彈會持續工作超過8小時,但那時實際運行時間已持續約100小時。

系統每1/10秒就進行一次乘以1/10的運算,1/10的二進制就是0.00011001100110011001100...……,但在愛國者的24位固定小數點寄存器裡就只保存到小數點後第24位。每次計算就會捨去0.0000000000000000000000011001100(十進制約0.000000095)。

愛國者工作時間約100小時,按0.000000095 x 100(小時)x 60(分) x 60(秒)x 10(每秒進行的除法運算)=0.34秒;飛毛腿導彈速度約1676米/秒,按0.34(秒)x1676(米/秒),導彈飛行距離早就超過了半公里;這點距離已足夠能讓導彈飛到愛國者追蹤攔截的範圍之外了。

這枚導彈襲擊了美國軍營,造成了28名士兵死亡,約100人受傷。


9 手下留情~別殺光我的系統軟件!


一字之差,AWS服務中斷


2010年4月21日,McAfee進行企業版軟件更新時將 windows 系統文件識別為隔離感染文件。

McAfee並不確定有多少臺電腦受到影響,不過通過網上的反應來看,全球醫院、企業和學校等機構至少有數十萬臺電腦因McAfee更新故障而受影響。據說,英特爾公司內部電腦以及美國衛星電視運營商Dish Network的呼叫中心也受到了這一故障的影響。

之後,McAfee修復了軟件問題,重新提供軟件更新的下載。

2007年5月,賽門鐵克的諾頓殺毒軟件也有類似情況,病毒庫升級後,把簡體中文版Windows XP的關鍵系統文件當作病毒清除查殺,導致系統癱瘓。

2016年7月,繼McAfee後CA互聯網安全套裝誤將某些Windows XP系統文件視為病毒,導致用戶無法找到這些文件。對此CA已給予證實,也同時強調這些文件只是被隔離,用戶可以手動恢復文件。


分享到:


相關文章: