2

【译文】经常嗡嗡叫的虫子(bug)

 2 weeks ago
source link: https://www.techug.com/post/bugs-that-buzzed-a-lot/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【译文】经常嗡嗡叫的虫子(bug)

真正的虫子、代码中的bug ,或 一些干扰都可能影响您的项目,并导致许多不同的后果。在本文中,我们收集了一些臭名昭著、引人入胜的错误。让我们从别人的错误中吸取教训吧!

任何人都可能犯错。这是生活的常态。这本无可厚非,但有些错误已经臭名昭著,在互联网历史上留下了永远的印记。今天,我们就来谈谈这样的错误,或者说是导致各种后果的错误。

真正的虫子

你还记得第一个 bug 的故事吗?1947 年 9 月 9 日,Mark II 计算机操作员发现了一个奇怪的东西。那是一只飞蛾。故事是这样的:被称为 “神奇的格蕾丝 “和 “COBOL 奶奶 “的传奇人物格蕾丝-霍珀发现一只昆虫卡在面板 F 上继电器 N70 的继电器触点之间。

因此,类似的事情发生在 2023 年。

TechTuber NorthWestRepair 的专家们在自己的频道上分享了一段视频,他们试图找到英伟达 RTX 4090 Founders Edition 显卡无法工作的原因。显卡的主人说,显卡显示出了 “生命迹象”,但显示器上却没有任何图像。

显卡维修首先是短路检查和电压测量,然后是显微镜缺陷检查。检查发现图形处理器出现故障。他们决定把显卡拆下来,结果发现了一个真正的 “bug”。那是一只苍蝇。

image2.webp

清理后,测试表明显卡开始正常运行。

破坏太空飞行的复制粘贴

这是一个关于一个错误的故事,估计花费了 70 亿美元和 10 年的时间。这是阿丽亚娜5号太空运载火箭的开发成本。

阿丽亚娜 5 号是欧洲的一次性运载火箭。其设计目的是将中型和重型航天器送入地球轨道。约有一千家制造公司参与了运载火箭的制造。一切都进行得很顺利,但发射后不到 40 秒,火箭就爆炸了。爆炸发生在 1996 年 6 月 4 日。

视频:https://youtu.be/PK_yguLapgA

在 4000 米的高空,阿丽亚娜 5 号偏离了飞行轨道并自毁。1996 年 6 月 13 日,一个特别委员会开始调查这起坠机事件。7 月 19 日,他们发布了一份详细的事故报告。

长话短说,错误出在开发人员身上。他们复制粘贴了一个早期火箭模型的控制程序代码,而这个火箭模型已经成功飞行了 100 多次。然而,他们并没有考虑到阿丽亚娜 4 号的飞行轨迹和水平速度是不同的。

image3.webp

包含错误的火箭代码片段。

要了解有关此案例的更多信息,请阅读 “A space error:整数溢出 370.000.000 美元 “一文。

“Cupertino with our Italian comrades proved to be very fruitful”

在给家人、朋友和同事写信时,我们都要经常使用自动更正功能。有时,它能帮助我们避免拼写错误,但有时,它却不尽如人意。下面这个故事就讲述了一个不太成功但却很有趣的自动更正案例。

您一定对 “cooperation “一词不陌生。英语规则将这个词拼写有另一种变体为 “co-operation”。

然而,微软 Word 等早期拼写检查系统中的许多词典都没有将 “cooperation “列入正确单词列表。如果智能系统建议将该选项替换为连字符,那就再好不过了。不过,它建议用 “Cupertino”(加利福尼亚州的一个城市名)来替换这个词,这可能会让你大吃一惊。

image4.png

这就是为什么在北约、联合国和其他组织的档案中,仍有许多文件包含 “Cupertino “一词,而不是 “cooperation”。

下面就是其中一个例子:”Cupertino with our Italian comrades proved to be very fruitful.”。

黑色星期一

不,这与黑色星期五和市场销售无关。这是道琼斯工业平均指数跌幅最大的一天。

道琼斯工业平均指数是《华尔街日报》编辑和道琼斯公司联合创始人创建的几个股市指数之一。它包括 30 家美国最大公司的股票价格,如苹果、可口可乐和英特尔。

1987 年 10 月初,该指数开始下跌。有几个事件被认为是可能的原因:波斯湾地区的军事升级、第一夫人南希-里根健康状况的不幸消息、西德和日本收紧税法等。

于是,1987 年 10 月 19 日,黑色星期一发生了。

image5.webp

这就是投资者的黑色星期一。截图来源:Ycharts:Ycharts.

这是最大的一次股灾,不仅影响了美国,还影响了澳大利亚、加拿大、英国等其他国家。

那天之后,人们将这次崩溃直接归咎于开发者。尽管专家们仍在争论其真正原因。

不过,根据官方说法,是程序交易错误导致了这场危机。事情是这样的:一个特殊的程序自动进行交易,这样投资者就不必持续监控金融报价和手动执行所有操作。机器由市场走势引导:指数上涨–买入,指数下跌–卖出。

当市场震荡时,机器同时开始卖出价值数百万美元的股票。但是没有人买,于是程序进一步压低了价格。仅一天时间,美国股市就损失了约 5000 亿美元。

不过,这个故事也有一些积极的结果。例如,监管机构全面修订了交易清算协议。他们限制了令交易者不堪重负的程序交易类型。他们还制定了新的监管程序,在指数剧烈波动时暂时停止交易。做市商制度也得到了发展。

在已经遥远的 2015 年,美国华盛顿特区的监狱发生了一起故障,导致 3200 名囚犯被提前释放。事实上,从 2002 年开始,这个问题就一直存在于这个系统中。

负责计算囚犯在狱时间及其良好行为 “奖金 “的计算机系统出现故障。结果,由于程序故障,囚犯被提前释放了大约 49 天。最后,决定还是将一些囚犯送回监狱,另一些则被送去劳动改造。

我们能从这个故事中得出什么结论呢?首先,这是又一个例子,说明代码中的一个小错误也可能造成严重后果。其次,在追求流程自动化的过程中,不应忘记对流程进行测试。

史上最年轻的黑客

有年幼子女的父母通常会在设备上启用家长控制功能。视频游戏机也不例外。然而,历史上曾有一个孩子成功登录了他父亲在 Xbox Live 服务上的账户。

这个天才少年就是来自圣地亚哥的克里斯托弗-冯-哈塞尔(Kristoffer Von Hassel)。那么,他是如何黑进父亲罗伯特的账户的呢?在猜密码失败后,他只需按几下空格键,然后按回车键。然后就成功了!他成功进入了父亲的账户。

克里斯托弗没有立即承认。他的父亲罗伯特从事信息安全工作。他被儿子的发现所吸引,直接将报告发送给了微软。公司承认了这个漏洞,并进行了修复。

视频:https://youtu.be/VUxgcHydhcI

不要让 bug 毁了你的项目!

从上面的例子中我们可以看到,即使是一行写得不好的代码,也会带来不幸,有时甚至是非常严重的后果。不过,即使是真正的 bug(例如苍蝇:)也会时不时地把事情搞得一团糟。幸运的是,这种情况很少发生。

创建更好、更安全代码的方法之一就是使用静态分析器,如 PVS-Studio。该工具可对 C、C++、C# 和 Java 编程语言进行代码分析。

本文文字及图片出自 Bugs that buzzed a lot


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK