- “电子邮件无法发送到 500 英里以外”
Bug界最经典的传奇之一
我在做校园的邮件系统管理员的时候,有用户向我抱怨说:他们不能发送超过500英里距离的email…
如果你之前没有听过这个故事。
如果你就是这个管理员。
此刻是否一脸懵逼。
补充材料:
用户中有位地理统计人员,还添油加醋地制作了一张邮件发送失败地图,地图上显示,她邮件的送达区域半径比500英里就多那么一点点:半径内的收件人,全收到了,之外的,全失败了。
请给出你的debug plan。
别说是邮票没贴够。
真相:
一次软件升级导致远程服务器超时时间被设为0。在一个具有典型负载的特定机器上,零超时意味着如果连接时间稍微超过3毫秒,服务器就会终止连接。而以光速传播的电信号,在3毫秒的时间内所能到达的距离大约是:
- 0.003 * c (光速) = 558.84719 miles
“只有在星期三才会崩溃的系统”
Bug界最经典的传奇之二
一家医院用来监控病人健康的数据库,每到周三,会自己崩溃。
我在周三的时候通常也会崩溃。
因为那天有组会。
但我感觉这应该不是这道问题的答案。
补充材料:
该事件中,***的难度在于,一周只有一天有机会debug。
该系统记录日志是用 C 风格的代码编写的,把日志字符串记录到了一个固定长度的缓冲区中,其中日志时间一栏,格式例如“Monday, July 17, 1997, 10:38:47.123“。
请给出你的debug plan。
真相:
因为周三的日志的时间一栏,缓冲区恰好溢出了。
(就差一个字节写不下)
不会有来自星星的bug
也没有哪个bug是太阳的后裔
所有那些你认为的、不惜穿越过时空,
来与你情定今生的bug
都特么是你曾经的二比惹的祸
故事继续。
“当我坐在窗边的时候,内存读写就会失败”
Bug界最经典的传奇之三
给一个自己设计的SD卡控制器写驱动,从五月开始调试,一直很顺利,到了七月份突然开始出现间歇性的SD卡读写失败,而且越靠近窗户,失败频率越高。
也许坐在窗前写程序,
本身就是一个错误
每次我坐在窗前的时候,
都会想
隔壁班的
那个女孩
怎么还没经过我的窗前
补充材料:
驱动程序是要下载到控制器的板子上的。当这块板子放置于窗边,特别是正午的时候,调试几乎总是失败。
请给出你的debug plan。
真相:
电路板上芯片的正常工作温度有限,当超过一定的温度时它就带不动负载了,而7月的正午,太阳正好会通过窗户会照到板子,导致温度过高。
- “摇动游戏手柄的时候,游戏存档就会失败”
Bug界最经典的传奇之四
在开发PS1游戏“袋鼠大进击”这款游戏的存档/读档时候遇到的。Bug的症状是每隔一段时间存档/读档都会超时失败。并且十分随机。
像我这种游戏从来都是一命通关的人
其实不是很在乎能不能存档的
补充材料:
该事件中的难点在于重现bug。当开发人员把可能出错的代码已经注释到了四大皆空的时候,bug依然随机出现。偶然间,测试发现了快速重现Bug的方法:一边摆动手柄,一边存档。
请给出你的debug plan。
真相:
PS的时钟在高频率下运行时,会影响到主板旁边的晶振,造成手柄控制器的内存卡控制器之间的串扰。手柄上一有信号,内存就被干扰了。
***给出一个真实的灵异故事。
(转自知乎)
某公司有个码农工作压力太大,天天晚上加班到半夜,***受不了跳楼死了,他的机位从此就一直空着。但令大家都感到非常奇怪的是,有几次早上来上班时却发现这台机子竟然开着!大概是因为电源有问题吧,但这个项目经理是个疑神疑鬼的人,每次经过这里都绕着走。
到了新一届招人,一个女孩被分到这个项目组。项目经理让她坐这个空着的机位,谁也没敢告诉她之前的事,只是让她接手原来同事的工作。过了没几天,她写的代码被测出来一个bug,可她水平确实比较差,怎么都调不通。她又不敢问同事,只好向男友求助(她男友是另一家公司的大牛)。男友说现在很忙,晚上10点以后才有空。 那天她只好等到晚上10点,男友终于有空了。这时公司里只剩下她和项目经理两个人。
她男友通过远程桌面帮她调试的时候,她要去个厕所便起身离开了坐位。过了一会项目经理下班回家,经过这里时用余光看到屏幕的上的代码好像在动!他定睛一看,屏幕上的代码正在一行一行的往下写,可是机位上并没有人!!!
第二天这个项目经理没来上班,而是给HR发了封邮件,提交了辞职申请。
以上就是一个程序员版的田螺姑娘的故事。