IL-0471 GitHub · 2026-08-06kubernetes
GitHub Actions 워크플로 실행이 대량으로 실패하거나 큐에서 오래 기다렸다
2026-08-06 15:05 UTC 부터 2026-08-07 00:14 UTC 까지 GitHub Actions 의 가용성이 떨어졌다. 이벤트를 처리하고 Actions 작업을 만드는 내부 서비스에 일상 배포를 하자 이미 있던 용량과 동시성의 약점이 드러났다. 배포로 파드가 교체되는 동안 남은 용량이 포화돼 서비스가 죽었다. 영향은 여러 클러스터와 하위 서비스로 줄줄이 번졌다. GitHub 는 용량을 늘리고, 웹훅으로 들어오는 작업을 줄이고, 밀린 이벤트를 처리할 용량을 늘렸다. 처음 무너진 서비스들은 17:00 에 회복했다.
그사이 러너에 작업을 배정하는 시스템들에 일이 밀렸다. 작업 배정을 맡은 서비스 하나에 숨어 있던 버그 때문에 러너가 더는 유효하지 않은 작업을 배정받고 그 작업을 계속 재시도하느라 유효한 작업을 가져가지 못했다. 러너가 유효하지 않은 작업을 되풀이해 가져가지 못하게 하는 변경을 배포하자 밀린 큐가 빠지고 Actions 가 정상으로 돌아왔다. 장애 중에 배포한 완화 조치 하나가 뜻하지 않게 Actions Runner Controller 러너에 영향을 줘, 러너 일부가 손으로 복구할 때까지 오프라인으로 남았다. GitHub 는 그 변경을 롤백했다. 사용자에게는 idle 상태에 멈춘 러너 파드를 kubectl 로 지우거나 Actions Runner Controller 애플리케이션을 다시 배포하면 Actions Runner Controller 가 새 러너를 만든다고 안내했다. 장애 중에 만들어진 일부 작업은 재시도도 취소도 되지 않는 상태로 남았다.
- 심각도
- –
- 영향 범위
- GitHub Actions workflow runs on GitHub-hosted and self-hosted runners: at the peak 71% had infrastructure failures and 75% of the rest were delayed by more than 5 minutes; GitHub Pages, Copilot code review, Copilot coding agent and GitHub Enterprise Importer migrations were also affected
- 영향 사용자
- Customers using GitHub-hosted and self-hosted runners
- 지역
- –
- 감지까지
- –
- 복구까지
- 9h 9m
증상
2026-08-06 15:05 UTC 부터 GitHub Actions 워크플로 실행이 시작하지 못하거나 도중에 실패했고, 일부 Actions REST API 요청이 오류를 냈다. 일부 고객은 워크플로에서 예상하지 못한 rate limiting 을 겪었다.
가장 심할 때 워크플로 실행의 71% 가 인프라 오류로 실패했고, 나머지 실행의 75% 는 5분 넘게 늦어졌다. GitHub 호스트 러너와 자체 호스트 러너가 모두 영향을 받았다. 큐에 들어간 작업의 성공률은 한때 30~40% 까지 떨어졌다.
영향은 다른 서비스로 번졌다. 15:53 UTC 에 GitHub Pages 의 성능이 떨어졌고, Copilot code review, Copilot coding agent, GitHub Enterprise Importer 마이그레이션도 실패하거나 늦어졌다. 웹훅 전달이 늦어졌고, 자체 호스트 러너를 등록할 때 오류나 rate limiting 이 났다.
복구하려고 웹훅 트리거를 줄이는 동안에는 웹훅을 약 15% 만 처리했다. 그래서 많은 push 와 pull request 이벤트가 워크플로를 시작하지 못했다. 이때 처리되지 않은 이벤트는 자동으로 다시 처리할 수 없었다.
용량 문제가 풀린 뒤에도 러너가 더는 유효하지 않은 작업을 배정받고 그 작업을 계속 재시도하느라 유효한 작업을 가져가지 못했다. 장애가 끝난 뒤에는 일부 Actions Runner Controller 러너 파드가 idle 상태에 멈춰 있었다. 장애 중에 만들어진 일부 작업은 재시도도 취소도 되지 않았다.
원인
- 촉발
- 이벤트를 처리하고 Actions 작업을 만드는 Actions 내부 서비스에 일상 배포를 했다. 배포로 파드가 교체되는 동안 남은 용량이 포화됐다.
감지
–
조치
- 용량을 늘렸고, 처음 무너진 서비스들은 17:00 에 회복했다.
- 시스템이 회복할 수 있게 웹훅으로 들어오는 작업을 줄였다. 한때 웹훅의 약 15% 만 처리했다.
- 밀린 이벤트를 처리할 용량을 늘렸다.
- 러너가 유효하지 않은 작업을 되풀이해 가져가려 하지 않도록 하는 변경을 배포했다.
- 작업을 가져가지 못하던 자체 호스트 러너를 위한 수정을 배포하고 조금씩 켰다.
- 완화 작업에 도움이 되도록 GitHub Enterprise Importer 마이그레이션을 멈췄다.
- 웹훅으로 시작하는 Actions 워크플로를 전체 처리량으로 되돌렸다.
- 완화 조치 하나 때문에 오프라인으로 남은 Actions Runner Controller 러너는 손으로 복구했고, 그 변경은 나중에 롤백했다.
- 재시도도 취소도 되지 않는 작업을 고객이 정리할 수 있는 CLI 와 UI 방법을 GitHub 커뮤니티 토론 글로 공유했다.
후속 조치
- 영향받은 서비스의 배포 안전장치와 용량 안전장치를 개선한다.
- 이번 장애에 앞서 나타난 조건을 잡아내도록 모니터링을 강화한다.
- 장애가 나도 큐에 쌓인 작업과 러너 배정이 버티고 빨리 복구되도록 개선한다.
- 다음 Actions Runner 와 Actions Runner Controller 릴리스에 자동 복구를 넣어 손으로 하는 조치가 필요 없게 한다.
- 대규모 Actions 장애에서 연쇄 장애가 번질 위험을 줄이고 복구를 앞당기는 개선을 더 한다.
교훈
–
출처
- https://www.githubstatus.com/incidents/qcvjkzcs7j74 · official-status · 보관본
참고 문서
관련 사례
같은 원인 · 공통 CI 시스템
IL-0002빌더 파드가 노드 한 대에 몰리자 kubelet 이 기본 API QPS 한도에 막혀 파드 상태를 늦게 갱신했고, CI 빌드가 AWS IAM 자격 증명을 받지 못해 실패했다Zalando · 2019같은 원인 · 공통 CI 시스템
IL-0401Kubernetes 프로젝트의 Prow 빌드 클러스터 노드가 GCP 디스크 IOPS 스로틀링에 걸려 테스트가 이상하게 실패하고 PR 머지가 몇 시간 멈췄다Kubernetes project · 2019같은 원인 · 공통 CI 시스템
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0471
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0471/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.