世界最著名的四大Bug
- “電子郵件無法發(fā)送到 500 英里以外”
Bug界最經(jīng)典的傳奇之一
我在做校園的郵件系統(tǒng)管理員的時候,有用戶向我抱怨說:他們不能發(fā)送超過500英里距離的email…
如果你之前沒有聽過這個故事。
如果你就是這個管理員。
此刻是否一臉懵逼。
補充材料:
用戶中有位地理統(tǒng)計人員,還添油加醋地制作了一張郵件發(fā)送失敗地圖,地圖上顯示,她郵件的送達(dá)區(qū)域半徑比500英里就多那么一點點:半徑內(nèi)的收件人,全收到了,之外的,全失敗了。
請給出你的debug plan。
別說是郵票沒貼夠。
真相:
一次軟件升級導(dǎo)致遠(yuǎn)程服務(wù)器超時時間被設(shè)為0。在一個具有典型負(fù)載的特定機(jī)器上,零超時意味著如果連接時間稍微超過3毫秒,服務(wù)器就會終止連接。而以光速傳播的電信號,在3毫秒的時間內(nèi)所能到達(dá)的距離大約是:
- 0.003 * c (光速) = 558.84719 miles
“只有在星期三才會崩潰的系統(tǒng)”
Bug界最經(jīng)典的傳奇之二
一家醫(yī)院用來監(jiān)控病人健康的數(shù)據(jù)庫,每到周三,會自己崩潰。
我在周三的時候通常也會崩潰。
因為那天有組會。
但我感覺這應(yīng)該不是這道問題的答案。
補充材料:
該事件中,***的難度在于,一周只有一天有機(jī)會debug。
該系統(tǒng)記錄日志是用 C 風(fēng)格的代碼編寫的,把日志字符串記錄到了一個固定長度的緩沖區(qū)中,其中日志時間一欄,格式例如“Monday, July 17, 1997, 10:38:47.123“。
請給出你的debug plan。
真相:

因為周三的日志的時間一欄,緩沖區(qū)恰好溢出了。
(就差一個字節(jié)寫不下)
不會有來自星星的bug
也沒有哪個bug是太陽的后裔
所有那些你認(rèn)為的、不惜穿越過時空,
來與你情定今生的bug
都特么是你曾經(jīng)的二比惹的禍
故事繼續(xù)。
“當(dāng)我坐在窗邊的時候,內(nèi)存讀寫就會失敗”
Bug界最經(jīng)典的傳奇之三
給一個自己設(shè)計的SD卡控制器寫驅(qū)動,從五月開始調(diào)試,一直很順利,到了七月份突然開始出現(xiàn)間歇性的SD卡讀寫失敗,而且越靠近窗戶,失敗頻率越高。
也許坐在窗前寫程序,
本身就是一個錯誤
每次我坐在窗前的時候,
都會想
隔壁班的
那個女孩
怎么還沒經(jīng)過我的窗前
補充材料:
驅(qū)動程序是要下載到控制器的板子上的。當(dāng)這塊板子放置于窗邊,特別是正午的時候,調(diào)試幾乎總是失敗。
請給出你的debug plan。
真相:
電路板上芯片的正常工作溫度有限,當(dāng)超過一定的溫度時它就帶不動負(fù)載了,而7月的正午,太陽正好會通過窗戶會照到板子,導(dǎo)致溫度過高。
- “搖動游戲手柄的時候,游戲存檔就會失敗”
Bug界最經(jīng)典的傳奇之四
在開發(fā)PS1游戲“袋鼠大進(jìn)擊”這款游戲的存檔/讀檔時候遇到的。Bug的癥狀是每隔一段時間存檔/讀檔都會超時失敗。并且十分隨機(jī)。
像我這種游戲從來都是一命通關(guān)的人
其實不是很在乎能不能存檔的
補充材料:
該事件中的難點在于重現(xiàn)bug。當(dāng)開發(fā)人員把可能出錯的代碼已經(jīng)注釋到了四大皆空的時候,bug依然隨機(jī)出現(xiàn)。偶然間,測試發(fā)現(xiàn)了快速重現(xiàn)Bug的方法:一邊擺動手柄,一邊存檔。
請給出你的debug plan。
真相:
PS的時鐘在高頻率下運行時,會影響到主板旁邊的晶振,造成手柄控制器的內(nèi)存卡控制器之間的串?dāng)_。手柄上一有信號,內(nèi)存就被干擾了。
***給出一個真實的靈異故事。
(轉(zhuǎn)自知乎)
某公司有個碼農(nóng)工作壓力太大,天天晚上加班到半夜,***受不了跳樓死了,他的機(jī)位從此就一直空著。但令大家都感到非常奇怪的是,有幾次早上來上班時卻發(fā)現(xiàn)這臺機(jī)子竟然開著!大概是因為電源有問題吧,但這個項目經(jīng)理是個疑神疑鬼的人,每次經(jīng)過這里都繞著走。
到了新一屆招人,一個女孩被分到這個項目組。項目經(jīng)理讓她坐這個空著的機(jī)位,誰也沒敢告訴她之前的事,只是讓她接手原來同事的工作。過了沒幾天,她寫的代碼被測出來一個bug,可她水平確實比較差,怎么都調(diào)不通。她又不敢問同事,只好向男友求助(她男友是另一家公司的大牛)。男友說現(xiàn)在很忙,晚上10點以后才有空。 那天她只好等到晚上10點,男友終于有空了。這時公司里只剩下她和項目經(jīng)理兩個人。
她男友通過遠(yuǎn)程桌面幫她調(diào)試的時候,她要去個廁所便起身離開了坐位。過了一會項目經(jīng)理下班回家,經(jīng)過這里時用余光看到屏幕的上的代碼好像在動!他定睛一看,屏幕上的代碼正在一行一行的往下寫,可是機(jī)位上并沒有人!!!

第二天這個項目經(jīng)理沒來上班,而是給HR發(fā)了封郵件,提交了辭職申請。
以上就是一個程序員版的田螺姑娘的故事。