summary
2018 年,Travis CI 的一次凭据轮换未能对所有构建 worker 完整生效,部分虚拟机处于凭证过期/不一致状态,被内部称为「泄露」的 VM,构建队列等待时间随之升高。
timeline
轮换操作在部分节点上未落地;这些节点上的构建任务因认证失败而重试或挂起,排队积压;团队完成剩余节点的凭据刷新后队列逐步恢复。
root_cause
自动化凭据轮换流程缺少完成度校验与幂等保障,部分目标被遗漏,属于人为/自动化流程缺陷而非外部入侵。
amplifiers
CI 平台的构建 VM 高度同质且自动伸缩,任一节点的凭证不一致都会被调度器频繁命中,放大为全局队列时延。
mitigation
Travis CI 补全了剩余节点的凭据并更新轮换脚本,增加轮换完成度校验。
lessons
凭据轮换必须幂等且可验证完成度,遗漏的节点应当被自动隔离而非继续接任务;大规模自动化操作要有端到端确认。
checklist
凭据轮换加完成度校验与对账;未完成节点自动移出调度池;轮换操作可观测、可重放、可回滚。