编译 | 苏宓

出品 | CSDN(ID:CSDNnews)

本周一深夜,GitHub 经历了一场长达 7 小时 47 分钟的大规模故障,Issues、Pull Requests、API、Actions 以及 Copilot 等多项核心服务受到影响。巧合的是,就在同一天,马斯克旗下的 Cursor 刚刚发布了代码托管平台 ,一时间也被不少人视为 GitHub 的潜在替代方案。

而这场持续近 8 小时的故障,究竟是怎么发生的?

GitHub 最新发布了事故复盘报告,终于给出了答案。报告显示,这并不是某一个服务突然“挂了”这么简单,而是从 Istio sidecar 扩容异常,到负载均衡器过载,再到客户端重试放大流量,多个环节接连出现问题,最终将一次局部故障演变成了一场影响多个核心服务的大规模事故。

打开网易新闻 查看精彩图片

一场近 8 个小时的宕机事件

根据官方发布的报告显示,8 月 17 日 13:28 UTC,GitHub.com 开始出现大面积错误和延迟,持续了 7 小时 47 分钟,直到 21:15 UTC 才完全恢复。

期间,Issues、Pull Requests、API、Actions 和 Copilot 等多个核心服务均受到影响,Web 和 API 的错误率最高一度达到约 20%,而 archive 和 raw content 下载的错误率甚至接近 50%。与此同时,SAML/OIDC 身份认证、SCIM、Team Sync 等功能也受到波及,部分依赖 GitHub.com 公共 workflow 定义的 GitHub Enterprise Cloud Actions 工作流同样出现异常。

GitHub 指出,这场事故最初发生在美国中部数据中心。

当时,一组运行 Istio sidecar 的 Pod 达到了并发限制,但由于自动扩容策略存在配置问题,扩容没有正常触发。具体来说,这套策略只监控了 host service 的容量,没有正确考虑 sidecar 的并发限制,导致服务无法正常扩容。

随后,一个故障逐渐向其他节点扩散,最终有 4 个 HAProxy 节点耗尽连接流量限制,网关认证链路开始出现大面积延迟和失败。

更麻烦的是,系统原本设计的“retry”机制没有帮上忙,反而让情况进一步恶化。

大量请求在失败后不断重试,进一步增加了内部负载均衡器的压力,形成了典型的“重试风暴”。GitHub 随后将部分流量从美国中部数据中心切换到 Northern Virginia,在那里这些请求一度可以正常处理。与此同时,暂停出现问题的 HAProxy 节点后,服务也迅速出现大范围恢复。

打开网易新闻 查看精彩图片

VS Code 的一个内部 Bug 加剧了宕机时间

不过,Copilot 的问题并没有因此结束。

GitHub 发现,某个内部接口的延迟响应又触发了 VS Code 中一个此前隐藏的重试 Bug,导致相关请求被进一步放大,流量最高被放大了约 10 倍。

Copilot Token Service 的正常流量原本只有 7000~9000 RPS,事故期间却飙升至 7万~10万 RPS。

为了控制这场“retry loop”,GitHub 临时降低了网关的 gateway retry,同时在负载均衡器层面阻断 Copilot Token Service 的相关请求,并通过返回 403、再逐站点逐步恢复流量的方式,让服务重新回到可控状态。

最终,大部分服务在 16:36 UTC 左右恢复,Actions 持续降级至约 18:03 UTC,而 Copilot Token Service 则直到 21:02 UTC 才完全恢复。

打开网易新闻 查看精彩图片

还有一个额外因素:爬取攻击

这次事故还有一个额外因素:GitHub 在故障期间还遭遇了针对 codeload 接口的多起爬取攻击,进一步增加了恢复过程中的复杂性。

打开网易新闻 查看精彩图片

GitHub 接下来会怎么改?

为了避免类似事故再次发生,GitHub 表示将采取以下措施:

  • 修正自动扩容策略,将服务网格 sidecar 的并发和容量纳入扩容判断;

  • 全面审查 Istio 在受影响服务中的请求、并发以及扩容限制;

  • 重新检查网关和客户端的重试次数及退避机制;

  • 修复 VS Code 的重试行为,避免再次放大 Copilot Token 流量;

  • 加强负载均衡器容量监控以及跨区域故障切换机制。

来源:https://www.githubstatus.com/incidents/zkxwbgr0cnmx

最后,说一件事

2026 奇点智能技术大会与C++及系统软件技术大会 终于要和大家见面了。

11 月 20-21 日·北京,奇点智能研究院联合 CSDN,把两场技术大会放在了同一个时空里:

  • 奇点智能技术大会(始于 2016)——聊大模型、AI Native、企业级 AI 落地、多模态与世界模型;

  • C++ 及系统软件技术大会(始于 2005)——聊现代 C++ 演进、AI 算力与推理优化、高性能低时延系统。

为什么要放在一起?因为我们越来越相信——上层 AI 应用的爆发,离不开底层系统软件的支撑;而底层技术的演进方向,也正在被 AI 重新定义。

这次大会汇聚 70+ 位技术专家、18 个主题、1000+ 同行到场。

如果你也在这些方向上做研究、做产品、做工程,别错过。

打开网易新闻 查看精彩图片