废弃代码并非无害代码
Power Peg函数已多年未被使用,却从未被彻底移除——代码库中其他地方一个被重新利用的标志位,就足以将其唤醒。只要弃用的代码路径仍然存在,它就会一直带来潜在风险。
一家做市商的部署脚本漏掉了八台服务器中的一台。那台服务器上仍潜伏着一段长达八年之久的测试代码——一个被重新利用的标志位将其唤醒,引发了大量失控交易的洪流,险些在午餐前就让公司倒闭。
来源已在正文中标注链接;由于美国证券交易委员会(SEC)随后展开调查并发布公开命令,此次事件的记录格外详实。
这是本系列中损失最快、最集中的一次事故——提醒我们,在自动化系统中,发现速度几乎比任何其他因素都更重要。
Power Peg函数已多年未被使用,却从未被彻底移除——代码库中其他地方一个被重新利用的标志位,就足以将其唤醒。只要弃用的代码路径仍然存在,它就会一直带来潜在风险。
八台服务器中有七台正确接收了更新,唯独第八台没有。如果部署流程缺乏自动化校验来确认每个节点都符合预期状态,那么变更后的系统状况可能比变更前更糟。
系统每多运行一分钟,造成的损失速度是本系列中其他大多数事故都无法比拟的——对于自动化交易系统而言,一个快速、自动的熔断开关,其价值几乎超过任何其他单项可靠性投入。
在部署安全或交易基础设施案例中引用此事件时常见的问题。
模式
主题色