历史上的十次技术灾难(四)


刘国林
 
  AT&T电话线路瘫痪日

  千年虫是人们预料到的可能爆发的问题,却没有大规模发作;而10年前美国电话电报公司(AT&T)的软件故障却是没有人预料到的。

  AT&T旗下的MaBell公司拥有世界上最大、最知名的性能可靠的电话网络系统,即使飓风和地震都不能对它造成损坏。然而在1990年1月15日,AT&T114个交换中心中,有一个开关发生了很小的机械故障,正是这点小故障却立刻导致了该中心的瘫痪。故障发生后,当工作人员启动备份系统时,系统却发出了使其他交换中心掉线并重置的信号,而且其他中心也随之向外发送类似的信号。

  事后一位作家在他的文章中描述说,那天系统全部崩溃,“就像一百多个摔跤选手挤在一个小台子上一样”,每一个人站起来都要把别人拉到。美国航空公司估计他们在这次事故中损失了二十多万个预定电话,而哥伦比亚广播公司甚至都不能到其本地电话局查询损失的情况。最后调查证明,这次事故的罪魁祸首是一个复杂软件的升级版本中一行错误的代码,AT&T进行此次升级的目的是要加快电话拨叫的速度。

  AT&T曾被大加称赞的交换系统也发生了相同的故障。该公司主席阿兰在事后承认,正是由于其自身系统的冗余性造成了问题的扩散。它没有在冗余系统与主系统之间进行足够的隔离;它应该在对新软件完成实际的全面测试之前,保留备份系统中的原有软件,也许是由于AT&T的程序员们过于相信自己软件的可靠性,才没有这样做。 

  1965年美国东北部电力中断

  今年,加利福尼亚频繁的停电事故不免让人们回想起1965年发生在美国东北部的大规模的停电事故。但那次事故并不像加州的事故一样是由于违反操作规程、市场操纵或人力短缺造成的。其原因是技术方面的,而且恰恰是由于为防止电力供应不足和电力中断所采取的措施而引起的。

  在上世纪50年代用电量剧增的时候,为了确保电力供应,各电力公司将纽约、新英格兰和安大略湖地区的电网连接成一个巨大的网络。当一个地区的用电量达到高峰时,其他地区可以对其进行补充。但是要想预测多大范围、多复杂的电网才会起实际作用是非常困难的,工程人员们没有预测某一地区电力供应的浪涌会对其他地区造成什么样的影响,而这种影响可以使整个电网崩溃。工程设计人员在从尼亚加拉到安大略地区的输电线上仅安装一个简单的继电切换开关作为触发器,当电源浪涌超过设定的某一水平后它将自动跳开。

  1965年的9月9日,该线路的电力负载超过了设定值,于是开关跳开,结果原本流向多伦多的电流反过来注入了纽约西区,使线路发生堵塞,发电机不得不停机才避免子被烧毁。这一环路向南扩展到纽约市,向东到达了缅因州的边界。此次停电面积达到了20.72万平方公里,受影响人口达3000万,其中包括美国最大的城市纽约。