世界最著名的四大bug

“电子邮件无法发送到 500 英里以外”

Bug界最经典的传奇之一

我在做校园的邮件系统管理员的时候,有用户向我抱怨说:他们不能发送超过500英里距离的email…

如果你之前没有听过这个故事。

如果你就是这个管理员。

此刻是否一脸懵逼。

补充材料:

用户中有位地理统计人员,还添油加醋地制作了一张邮件发送失败地图,地图上显示,她邮件的送达区域半径比500英里就多那么一点点:半径内的收件人,全收到了,之外的,全失败了。

图0:世界最著名的四大bug

请给出你的debug plan。

别说是邮票没贴够。

真相:

一次软件升级导致远程服务器超时时间被设为0。在一个具有典型负载的特定机器上,零超时意味着如果连接时间稍微超过3毫秒,服务器就会终止连接。而以光速传播的电信号,在3毫秒的时间内所能到达的距离大约是:

0.003 * c (光速) = 558.84719 miles

“只有在星期三才会崩溃的系统”

Bug界最经典的传奇之二

一家医院用来监控病人健康的数据库,每到周三,会自己崩溃。

我在周三的时候通常也会崩溃。

因为那天有组会。

但我感觉这应该不是这道问题的答案。

补充材料:

该事件中,最大的难度在于,一周只有一天有机会debug。

该系统记录日志是用 C 风格的代码编写的,把日志字符串记录到了一个固定长度的缓冲区中,其中日志时间一栏,格式例如“Monday, July 17, 1997, 10:38:47.123“。

请给出你的debug plan。

真相

图1:世界最著名的四大bug

因为周三的日志的时间一栏,缓冲区恰好溢出了。

(就差一个字节写不下)

不会有来自星星的bug

也没有哪个bug是太阳的后裔

所有那些你认为的、不惜穿越过时空,

来与你情定今生的bug

都特么是你曾经的二比惹的祸

图2:世界最著名的四大bug

故事继续。

“当我坐在窗边的时候,内存读写就会失败”

Bug界最经典的传奇之三

给一个自己设计的SD卡控制器写驱动,从五月开始调试,一直很顺利,到了七月份突然开始出现间歇性的SD卡读写失败,而且越靠近窗户,失败频率越高。

也许坐在窗前写程序,

本身就是一个错误

每次我坐在窗前的时候,

都会想

隔壁班的

那个女孩

怎么还没经过我的窗前

补充材料:

驱动程序是要下载到控制器的板子上的。当这块板子放置于窗边,特别是正午的时候,调试几乎总是失败。

请给出你的debug plan。

真相:

电路板上芯片的正常工作温度有限,当超过一定的温度时它就带不动负载了,而7月的正午,太阳正好会通过窗户会照到板子,导致温度过高。

“摇动游戏手柄的时候,游戏存档就会失败”

Bug界最经典的传奇之四

在开发PS1游戏“袋鼠大进击”这款游戏的存档/读档时候遇到的。Bug的症状是每隔一段时间存档/读档都会超时失败。并且十分随机。

像我这种游戏从来都是一命通关的人

其实不是很在乎能不能存档的

补充材料:

该事件中的难点在于重现bug。当开发人员把可能出错的代码已经注释到了四大皆空的时候,bug依然随机出现。偶然间,测试发现了快速重现Bug的方法:一边摆动手柄,一边存档。

请给出你的debug plan。

真相:

PS的时钟在高频率下运行时,会影响到主板旁边的晶振,造成手柄控制器的内存卡控制器之间的串扰。手柄上一有信号,内存就被干扰了。

最后给出一个真实的灵异故事。

(转自知乎)

某公司有个码农工作压力太大,天天晚上加班到半夜,最后受不了跳楼死了,他的机位从此就一直空着。但令大家都感到非常奇怪的是,有几次早上来上班时却发现这台机子竟然开着!大概是因为电源有问题吧,但这个项目经理是个疑神疑鬼的人,每次经过这里都绕着走。

到了新一届招人,一个女孩被分到这个项目组。项目经理让她坐这个空着的机位,谁也没敢告诉她之前的事,只是让她接手原来同事的工作。过了没几天,她写的代码被测出来一个bug,可她水平确实比较差,怎么都调不通。她又不敢问同事,只好向男友求助(她男友是另一家公司的大牛)。男友说现在很忙,晚上10点以后才有空。 那天她只好等到晚上10点,男友终于有空了。这时公司里只剩下她和项目经理两个人。

她男友通过远程桌面帮她调试的时候,她要去个厕所便起身离开了坐位。过了一会项目经理下班回家,经过这里时用余光看到屏幕的上的代码好像在动!他定睛一看,屏幕上的代码正在一行一行的往下写,可是机位上并没有人!!!

图3:世界最著名的四大bug

第二天这个项目经理没来上班,而是给HR发了封邮件,提交了辞职申请。

以上就是一个程序员版的田螺姑娘的故事。

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注