GitHubはこのほど、「GitHub Availability Report: April 2024 - The GitHub Blog」において、2024年4月の可用性レポートを公表した。今回のレポートでは、GitHubサービス全体のサービスを低下させた4件のインシデントが報告されている。
データベースへの接続障害によりサービスのエラー率が増加
2024年4月5日8時11分(世界協定時)に発生したインシデントでは、47分間にわたって複数のGitHubサービスでエラー率が増加し、10万件を超えるGitHub Actionsワークフローが開始に失敗した。根本の原因は、データベース ロードバランサーの変更によって、3つのデータセンターのうちの1つで重要なデータベースへの接続障害が発生したことだという。GitHubでは変更をロールバックすることで問題を解決し、デプロイの早い段階で同様の問題を検出するための新しい対策を導入した。
プライマリーデータベースの過負荷でサービスのエラー率が増加
2024年4月10日8時18分(世界協定時)には、120分間にわたって複数のサービスでエラー率が増加するインシデントが発生した。原因は、無制限のクエリによってプライマリーデータベース インスタンスが過負荷状態になったためとされている。このインシデントでは、Webベースのリポジトリー操作やIssueおよびプルリクエストのオーサリング、GitHub検索などが大きな影響を受け、いずれもエラー率が大幅に上昇したという。
GitHub ActionsやGitHub Pagesなど、広範囲でサービスが低下
2024年4月10日8時18分(世界協定時)には、計算集約型のデータベースでも問題が発生し、 GitHub Actionsをはじめとする広範囲のサービスが影響を受けている。これは、計算集約型のデータベースクエリが原因となって、複数の主要なデータベース クラスターが他のクエリを処理できなくなったためだという。
このインシデントによって影響を受けた主なサービスは以下の通り。
- GitHub Actionsで遅延と障害が発生
- GitHub APIへのリクエストで多数のタイムアウトが発生
- すべてのGitHub Pagesのデプロイが失敗
- Git Systemsにおいて、RAW ファイルとリポジトリーアーカイブのダウンロードリクエストの一部でHTTP 50X エラーが発生
- Issueの作成と更新のレイテンシが増加
- GitHub Codespaceで、Codespaceの作成と再開のリクエストのタイムアウトが発生
GitHubでは、問題のあるクエリをロールバックするとともに、計算負荷の高いクエリを検出するメカニズムを改善することで将来同様の問題が発生しないように対処したとのこと。
GitHub.comで重要なメールの配信が大幅に遅延
2024年4月11日8時18分(世界協定時)に発生したGitHub.comのメール配信で問題は、同4月14日12時41分までの実に3日と4時間23分にわたって継続した。この期間中、GitHub.comではパスワードのリセットなどの時間に制約のあるメールの配信が最大2時間遅延し、ユーザーはパスワードのリセットや認識されていないデバイスからのサインインの検証が完了できない状態に陥った。
原因は、共有リソースプールの使用量の増加と、別の内部ジョブキューの異常によって、メーラーキューの処理が妨げられたことだという。GitHubでは、同様の問題の発生を防ぐために、時間に制約のあるメール配信の改善や、異常な電子メール配信の検出方法を更新するなどの処置を講じたと報告している。
GitHubは定期的に可用性レポートを公開しており、リアルタイムの稼働情報を「GitHub Status」から確認できる。