(こちらは Public IR Problems Restoring Workspaces for Some Executors 2022-04-29 の参考訳です)
概要:
4 月 29 日 9 時 53 分 (UTC) に、コード変更がデプロイされ、その変更により Google Cloud Platform (GCP) 上で動作する attach_workspace
ステップを使用するすべてのお客様のジョブが失敗しました。 弊社ではそのデプロイを直ちにロールバックし、12 時 12 分 (UTC) までにお客様に影響を与える問題を解決いたしました。 この間、お客様にはご迷惑をおかけしましたが、ご協力いただき感謝いたします。
インシデントの詳細
時刻はすべて UTC (世界協定時間) で表示されています。
9 時 53 分 に、GCP 上で動作するジョブについてワークスペースを Google Cloud Storage (GCS) から復元し、エラー発生時には S3 にフェイルバックするためのコード変更がリリースされました。 10 時 55 分より、attach_workspace
ステップでの失敗によりジョブが失敗したお客様からサポートチケットを受領し始めました。 12 時 12 分に、原因となっていたコード変更のプルリクエストを元に戻したところ、すぐに attach_workspace
エラーが減少していることが確認されました
現在弊社では、ワークスペースを 2 つのプロバイダーに書き出すための変更をワークスペースサービスで行なっています。 このインシデントの発生時は、当該レプリケーションは一部の社内プロジェクトに対してのみ有効になっていました。 29 日のコード変更により、GCP からワークスペースをダウンロードし、ダウンロードに失敗した場合はもう一つのプロバイダーへのフォールバックが試みられるようになりました。 コードのバグが原因で、ダウンロードに失敗しても成功したと報告され、フェイルオーバーがトリガーされず、ワークスペースをダウンロードするほぼすべての呼び出しで Not Found
エラーが報告されました。
そのため、attach_workspace
ステップを含む GCP 上で実行されるすべてのジョブは下記の状態になっていました。
- GCS からワークスペースをダウンロードしようとする
- Not Found エラーを受け取る
- バグにより、誤って成功とレポートする
- (必要なワークスペースがない状態で) ステップの処理を継続する
- そのワークスペースを使用しようとすると失敗する
今後の予防とプロセスの改善
今回の問題により、検出プロセスおよびレスポンスプロセスに複数の問題があることが判明しました。 attach_workspace の失敗は監視していましたが、アラートはなく、その後アラートを追加しました。 この変更に対する予測される挙動を検証するための自動テストを更新しました。 また、コード変更を迅速に元に戻す妨げとなっていたロールバックスクリプトの誤りを修正しました。
この問題の解決にあたり、お客様にご協力いただき、重ねて感謝いたします。