全てのサービス全てのサービス

2022年2月22日〜24日に発生した障害に関する調査結果のご報告

平素より rakumo をご利用くださいまして誠にありがとうございます。
rakumo サポート担当でございます。

2022年 2月 22日 〜 24日 に発生しました Google グループを正常に同期できない障害につきまして、調査結果をご報告申し上げます。

この度はお客様に大変なご迷惑をおかけしまして、誠に申し訳ございませんでした。
なお、当障害は復旧済みでございます。

障害情報詳細

発生日時

  • 2022年 2月22日 未明 〜 24日 13時15分頃

サービス

  • rakumo サービス全般

内容

  • Google 同期の実行時に、Google Workspace から Google グループの情報を正しく取得できず、rakumo管理画面から一部のグループが削除されている可能性がありました。

グループの情報を正しく取得できていない場合、各サービスへ以下の影響が生じている可能性がありました。

影響内容一覧

発生範囲

  • 一部のお客様

以下の2つの条件をともに満たすお客様の一部で発生しております。

  • 「同期するグループの設定」が「全てのグループを同期」となっている
  • 現存する Google グループの数が 200 を超えている

原因

Google 同期でグループの情報を取得する際に使用している Google の API が、 Google Workspace に存在しているグループのデータを一部しか返却しない場合があったため、本事象が発生しておりました。

rakumo の「Google 同期」機能では、「全てのグループを同期する」設定の場合、Google 社が提供する Google Directory API の Groups.list を使用して Google Workspace に存在する全てのグループ情報の取得を行っております。
同 API では、グループ情報を 200 件 ずつ取得する仕様となっており、200 件を超えるグループが存在する場合は、レスポンスに追加のグループ情報があることを示すトークン (nextPageToken) が指示されます。

2022 年 2 月 22 日から 2 月 24 日の間、このトークンを指定したリクエストで、稀に、2つの問題が発生しておりました。

  • 問題1. 正常なトークンを指定したリクエストに対し、エラーが返却される
  • 問題2. 正常なトークンを指定したリクエストに対し、空の結果が返却される

上記の 問題2 により、グループ情報の取得時に、本来存在するはずのグループ情報が返却されず、また、エラーも発生しなかったため、
rakumo は同期が正常に終了したとみなし、グループ情報やそれに紐づく以下の情報の削除が行われてしまっておりました。

本障害発生時点における rakumo 「Google 同期」機能のグループ情報同期処理工程

1) API を通じて Google Workspace からグループ情報とグループメンバーの情報を取得する
2) 取得した情報を元に、rakumo に存在するグループとグループメンバーの情報を更新する
3) ここまでの工程のいずれかの段階でエラーが発生した場合、処理をロールバックし、同期を中断する。正常に終了した場合は次に進む。
4) 同期が正常に終了した場合、同期により更新されなかったグループは Google Workspace から削除されたものとみなして、rakumo からも削除する

本事象の原因である API の問題については、Google社が実施した「Groups.list API リクエストで提供された `pageToken` の解析を担当するバックエンドコンポーネントへの最近のソフトウェアの変更」が原因で発生しておりました。

問題を検知した後、Google社で、影響を受けた変更を含むリリースをロールバックし、2月24日 5:00 頃に問題が修正されました。
ただし、Google 社で修正の確認に時間を要したため、rakumo 側でも同日 13:15 頃に、問題発生時にグループが削除されないよう処理の修正リリースを行っております。

その後、Google 社にて問題の修正が確認されたため、3/2 に復旧のアナウンスを致しました。現在は同様の事象でグループが削除されることはなくなっております。

本事象について、長期に渡りご不便・ご迷惑をおかけいたしましたことを改めて深くお詫び申し上げます。

本件につきまして、ご不明な点がありましたら、お問い合わせフォームよりお知らせくださいませ。

どうかよろしくお願い申し上げます。

2022年 5月 12日
rakumo サポート担当