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

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

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