我听到过的一个精彩的软件纠错故事

开发 后端
那还是80年代初期,我爸爸在一家存储设备公司工作,这个公司现在已经不存在了,它生产磁带机和驱动这些磁带高速运转的气动系统 这是那个时代的产物。

     他们技术改造了磁带驱动器,使得你可以只有一个中心驱动器 —— “A”盘 —— 由它连接着数个“B”盘,在跟A盘连接的内存里驻留这一个小型的操作系统,负责代理所有B盘的数据的读写操作。    

每次当你启动A驱动器,你需要在外围驱动器里插入一张软盘,操作系统会把A盘加载到内存里。这个操作系统简单的出奇 —— 它的处理能力全部从一个8字节的微型控制器产生。    

这种设备的目标用户是拥有大量数据的企业 —— 银行,杂志等等 —— 他们需要打印大量的地址簿或银行帐目。    有个客户出现了一个问题。在打印的过程中,有个别的驱动器会停止工作,导致整个打印过程终止。为了重载驱动器,值班人员必须重启所有驱动 —— 如果这种事情发生在一个6小时的打印任务中,大量宝贵的计算机使用时间都会浪费,整个任务将不能按时间完成。    

公司派出了技术人员。技术人员尽了他***的努力也不能在测试环境复制出这个问题:这个问题似乎只会出现在打印大量任务的过程中。尽管问题出在硬件上可能性微乎其微,他还是更换了所有的设备 —— 内存,微处理器,磁盘驱动,所有跟磁带机相关的部件 —— 但问题仍然出现。    

于是技术人员打电话给总部叫来了一位专家。    

专家要了一把椅子和一杯咖啡,坐在了计算机房 —— 那个时候他们已经专门为计算机提供了机房 —— 值班人员准备了一大堆的打印任务,他就在旁边看着。他等着,一直到机器崩溃。机器果真崩溃了,所有人都看着专家 —— 专家没有发现任何的线索。他命令把打印任务重新执行一次,所有的值班人员和技术人员都回各自工作的岗位。

专家又在椅子上做下来,等着机器崩溃。这一等就是六小时,但真的又发生了。专家仍然没有弄清是什么导致了崩溃 —— 除了有一点他注意到,崩溃总是发生在屋内人比较多的时候。他命令再打印一次,重新坐下,等着。    

当第三次崩溃时,他发现了一件事情。崩溃总是在值班人员更换其他没有关联的启动盘时发生的。进一步研究,他意识到当一个值班人员走过某块地板时崩溃就会发生。    地板是由铝制的板块拼成,下面有6 到 8 英寸高的隔空层,计算机所使用的大量的电缆都走地板下,这样可以避免值班人员无意间踢到它们。地板块间拼合的很紧密,这是为了保证垃圾不掉进电缆通过的空间。    

专家说有一块地板变形了。当值班人员踩着这块变形的地板的一角时,地板块的边缘相互摩擦,这就会跟连接各地板的塑料之间产生静电,进而造成电磁干扰。    

如今所有的RAM都有防电磁干扰功能。但当时并没有这种技术。专家指出,电磁干扰破坏的RAM的工作,操作系统也就崩溃了。    

专家打电话给维护部门,拿来了一块新地板,他自己把它装上,问题就这样解决了。

原文链接:http://www.cocoachina.com/gamedev/misc/2013/0605/6339.html

责任编辑:陈四芳 来源: CoCoaChina
相关推荐

2012-11-29 09:49:17

软件项目项目

2013-12-25 10:24:15

创业应用开发

2015-08-13 14:35:43

2021-03-03 09:16:51

容器技术容器云计算

2011-09-08 13:56:03

51cto 51CTO

2013-03-08 02:52:03

个人开发项目纠错

2017-12-14 14:36:54

金融工具敏捷大房间计划

2020-10-10 06:21:15

爬虫互联网

2020-07-09 18:46:52

物联网IIoT技术

2017-07-05 15:09:52

密码token浏览器

2010-08-30 09:18:15

2012-08-27 13:44:01

Google

2023-12-27 17:20:09

2012-06-05 09:54:59

Fedora女孩游戏

2009-08-26 17:05:55

.NET委托

2019-10-17 13:57:38

戴尔

2009-09-01 16:03:32

C#单元测试

2014-10-21 11:11:08

Siri人工智能

2018-07-03 15:20:36

Promise函数借钱

2021-07-12 05:01:11

云原生软件架构
点赞
收藏

51CTO技术栈公众号