北京时间 21 时 28 分至 18 日 5 时 15 分,GitHub 经历了长达 7 小时 47 分钟的大规模服务中断。期间,Web 和 API 的错误率最高达到约 20%,存档及原始文件下载错误率飙升至约 50%。受影响的服务包括 Issues、Pull Requests、API、Actions、Copilot 以及相关的身份验证服务。
此次中断的直接原因是美国中部数据中心的负载均衡器遭遇网络饱和。起初,一个 Istio sidecar 容器因策略配置错误达到并发上限且未能正确自动扩容,引发连锁反应,导致四个 HAProxy 节点的流量限制耗尽,进而拖垮了网关的身份验证路径。此外,部分端点遭遇的大量抓取攻击也增加了恢复的难度。
值得注意的是,代码编辑器 VS Code 中潜藏的一个重试机制漏洞在此次事件中被触发,导致向 Copilot 服务发送的流量被放大了约十倍,请求量从正常的 7000 至 9000 每秒请求数(RPS)激增至 7 万到 10 万 RPS。
官方通过转移流量至北弗吉尼亚州数据中心、暂时减少网关重试逻辑以及在负载均衡器层面拦截请求等方式,逐步恢复了所有服务。官方表示,后续将修正自动扩容策略、审查服务限制并修复 VS Code 中的重试漏洞,以防止类似事件再次发生。
(Github Community)