软件错误糗事一箩筐
1999年9月,火星气候轨道探测器由于一个“愚蠢的错误”:一个程序中的单位出错而坠毁。
1988年美国海军的导弹巡洋舰文森斯号射落一架空客320,归因于跟踪软件显示让人费解的误导性信息。
伦敦救护车服务部门的软件测试不足,导致病人因抢救不及时而死亡。
1985年7月,几名癌症患者死于Therac-25软件处理时并行任务出现的竞争条件引起的辐射剂量过大。
医疗软件错误致多人死亡。
英国驱逐舰H·M·S·谢菲尔德号在福克兰群岛战争中沉没。据消息称,舰载雷达预警系统经过编程后,误以为飞鱼导弹“友好”,因为英国武器包括飞鱼制导装置,结果这枚导弹正中目标,即谢菲尔德号。
一款飞机设计程序的错误导致了几次严重的空难事故。
新西兰航空公司的一家客机坠入南极山脉;机组人员没有被告知:输入到导航计算机(负责描述飞行计划)的数据已被更改。
引起阿丽亚娜5号卫星发射器故障的是一个有缺陷的软件异常例外程序,缺陷的根源是64位浮点转换成16位整数出现了错误。
在“发现号”航天飞机首飞阶段,丢失了30秒长的(非关键)实时遥测数据,原因是软件开发过程的需求阶段出现了问题。
由于软件部署后,未及时更改站名,结果伦敦码头区轻轨铁路公司的一辆列车停在了一个前不着村后不着店的地方。
1989年秋天,达拉斯/沃斯堡的空中交通系统开始发出胡乱的指令,控制人员只好靠在纸张记录上来跟踪飞机。
由于软/硬件交互问题,好几次航天飞机飞行任务被推迟。
一枚伊拉克飞毛腿导弹击中达兰军营,导致死28人、伤98人。爱国者防御系统没有探测到这枚来袭的导弹,因为其时钟在4天的连续工作中偏移了0.36秒;系统开启时间越长,时钟偏移问题越严重。这个软件瑕疵导致无法实时跟踪。打上补丁的软件一天后送到。
卡内基-梅隆大学和麻省理工学院的软件专家清理了充斥着软件错误的空中交通管制软件,确定该系统可以挽救,还是不得不彻底取消。
要是导弹以某个刁钻的角度飞来,全部27个程序就无法射落导弹。
阿波罗6号航天飞机擦除了计算机内存中的部分数据。
阿波罗14号为期10天的飞行过程中检测到了18个错误。
由于软件错误导致雷达信息的传送路径有误,1963年北美防空联合司令部(NORAD)的一次演习泡汤。
尽管投入使用了12年,美国战略空军司令部的465L指挥系统平均每天仍出现一个软件故障。
一个FORTRAN语句的错误导致美国损失了第一艘金星探测器。
1980年6月3日,北美防空联合司令部声称美国遭到导弹袭击。事后查明,误报的根源出在有故障的计算机电路生成了错误信号。如果负责处理这些信号的软件开发人员当初考虑到电路也会出故障这种可能,也许不会发生误报了。
由于制导程序忽略了地球绕太阳而行,载人太空舱双子星5号离着陆点相距100英里。
五个核反应堆暂时关闭,原因是测试核反应堆抗地震能力的一个程序使用了变量的算术和,而不是变量平方和的平方根。
在1997年一次演习中,全球军事指挥与控制系统(WWMCCS)连接到几个地区司令部的指令与控制系统后,信息传输的平均成功率只有38%。
计算机监控的一名软禁犯人逃跑,随后犯下命案。事后查明,原因是报告软件在收到主计算机号码忙音后没有重新尝试报告。
摄像头里面的时钟表明,客户取钱与欺诈案发生在同一时间,于是银行将该客户的照片发给当局,误以为他是骗子。其实,时钟偏离了大概一小时。
1990年1月,AT&T的长途电话网瘫痪了9小时,原因是代码补丁未经测试,这形象地表明了各个地方的复杂计算机系统何等脆弱。
1991年7月1日至2日,电话交换站的计算机软件崩溃导致华盛顿特区、匹兹堡、洛杉矶和旧金山的电话服务受到中断。看似微小的维修问题再次导致数字化System 7瘫痪。1991年7月1日系统崩溃时,大约1200万人受到影响。直接原因是输错了一个字符:一行软件代码中一个小小的印刷错误。输错了一行中的一个字母,后果是美国首都的电话服务瘫痪。这么小的错误未引起注意不是特别奇怪:System 7交换站通常需要上千万行代码。
在1989年的一个发薪日,正是取款高峰,一个有缺陷的程序导致东京第一劝业银行的1800台自动柜员机无法使用。
1989年,一家航空公司的机票预订系统停运后,14000名旅行代理人只好手动订票。
上世纪80年代初,别克公司不得不向8万辆V6汽车发放移植芯片,修复其微处理器的缺陷。
由于软件出现通信问题,1995年12月18日,纽约证券交易所开盘时间晚了一小时。
1994年7月20日,由于文件更新导致计算机系统过载,汉华银行因而停运5小时。
1995年10月12日,旧金山911系统崩溃了30多分钟。该系统打上了补救,却没有彻底修复,每天仍错过100个至200个电话。
南极上空的臭氧层空洞长时间没有被人发现,原因是数据超出了指定范围,结果被软件误认为是异常值。
由于行李自动处理系统的软件故障,丹佛机场关闭了整整一年多。
1998年1月结算当月账单时,贝尔大西洋公司没有向弗吉尼亚州、马里兰州、华盛顿特区和西弗吉尼亚州等部分地区的约40万AT&T客户收取长途电话费。AT&T表示,其运营支持系统为贝尔大西洋提供了20个计费周期中3个周期的正确计费数据,只在该月的2号、4号至5号和7号向客户收费,贝尔大西洋的计算机错误未能给出AT&T这部分的正确账单。大西洋贝尔表示,这个问题是“系统故障”、“处理错误”及/或“数据处理错误”(据推测,计算机磁带被用来在AT&T和贝尔大西洋之间传送计费资料)。
美国国内收入署(IRS)在消除千年虫计算机问题时碰到了意料不到的副作用:由于一个编程错误,遵守协议按期纳税的大约1000个纳税人突然被宣布拖欠税款。[有6200万行源代码要检查;该错误是试图消除千年虫的修正引起的。]
将“销售日期”打印在产品上的激光驱动打印机无法处理2000年日期后,一条生产线被迫关闭。
纽约市出租车和轿车委员会选择1996年3月1日作为出租车新的较高票价体系的起始日期。皇后区一家公司编程的出租车计价器忘了闰日,在2月29日向客户提前收取较高票价。
新西兰南部地区蒂瓦伊波因特一家铝冶炼厂在1997年新年前夕子夜出现了计算机软件错误,导致损失超过100万澳元。软件错误归因于没有考虑到闰年(认为一年中的第366天是无效日期),导致660台过程控制计算机关闭、冶炼锅冷却。两小时后,澳大利亚塔斯马尼亚州的科马尔科(Comalco)贝尔贝铝冶炼厂(时差与新西兰相差两小时)遇到了同样问题。新西兰铝冶炼厂总经理David Brewer说:“这是个复杂问题,一直到下午两三点才查明了原因。”
循环链接指向色情网站后,由于缓存问题,挪威一所学校的一个班级获得了色情图片。
300万加仑、540万加仑和150万加仑未经处理的污水被排放到威拉米特河,事后查明这三起独立事件归咎于计算机。
1997年6月2日,美国国家销售点电子转账系统(EFTPOS)崩溃两小时,10万美元的交易“丢失”。一套中央处理系统出现故障后,重新分配负载的备用系统也出现了故障。
一个互联网路由“黑洞”让多家互联网服务提供商(ISP)关闭;MAI网络服务路由表的错误将50000个路由地址转到MAI;1997年4月23日,互联网网络信息中心(InterNIC)也出了差错。
一个(CTSS)原始密码文件误以为是当日消息而分发,原因是编辑器搞混了临时文件名。
美国社会保障局的系统无法处理非英裔姓名,影响10万人的2340亿美元,有些可以追溯到1937年。
软件让工作人员无法纠正已确认的奥林匹克滑冰得分错误。
奥运会一场拳击比赛上的计算机计分故障导致明显获胜的一方败北。
蒙特利尔人寿保险公司因其集成系统的软件错误而倒闭。
计算机测试没做好扫尾工作,结果日本发布虚假海啸预警。
发生在关岛的大韩航空KAL 801事故导致机上254人中225人丧生。后来发现,地面迫近警告系统(GPWS)的气压测高系统存在设计问题。
一个“计算机错误”影响了数百人的英国A级考试成绩。
巴黎警方的计算机错配了科西嘉城市代码和邮政编码,结果无法征收汽车驾驶员的罚款。
Netscape Communicator 4.02和4.01a被允许泄露密码。
由于匹配未经核查,结果银行劫案“通缉令”的对象搞错了。
由于错误的软件更新,苏联Phobos I火星探测器丢失,损失达3亿万卢布。由于探测器迷失方向,无线电线路中断,太阳能电池还没有重新收回就放电放完。
一架F-18战斗机因未注意到异常条件而坠毁。
一架F-14战斗机而旋转无法控制而坠毁,后来查明问题出在战术软件上。
1989年9月19日,华盛顿特区一家医院的(一个2字节整数)溢出导致计算机崩溃,迫使医院改为手动处理事务。
1989年11月16日,密歇根终端系统的(一个2字节整数)溢出导致纽卡斯尔计算机崩溃,随后全美各地相继崩溃。
美国银行被迫放弃投入了6000万美元新建的一套软件系统,重新使用用了15年的老一套系统。
由于软件错误,美国大陆航空公司收取飞机租赁费向来少收一天。
斯坦福国际研究所(SRI International)的计算机通过求11个时钟的平均值来重置时间,不过有一个时钟整整偏差了12个小时。
1980年,阿帕网络(ARPAnet)因自我蔓延的错误而关闭。
传言称,一架空客飞机坠入机库,起因是机载计算机将颠簸误以为是湍流。
阿波罗11号登陆过程中的软件重启迫使阿姆斯特朗手动着陆登月飞行器。
1989年,由于飞行线控系统里面的新软件,一架瑞典鹰狮战斗机样机坠毁。
在2004年暑假的两天,法国国家铁路公司的车票预订系统乱成一团糟,原因是补丁有缺陷。
云头条编译|未经授权谢绝转载
相关阅读:
一个BUG一小时内烧掉530万!校园分期平台“趣分期”好心疼