管理画面で設定したの対象イベント(配信トリガー)とは異なる条件で接客サービスが配信されてしまう場合がある
Incident Report for KARTE
Postmortem

接客サービス配信の不具合に関するご報告

2019/09/17 11:20頃 - 2019/09/17 13:01 頃に発生しました、管理画面で設定した配信トリガーとは異なる条件で接客サービスが配信されてしまう不具合につきまして、下記の通りご報告させていただきます。

なお、本不具合の影響を受けたお客様につきましては、影響範囲の詳細をご説明するご連絡を、メールにて個別に送信させていただきました。そちらにつきましても併せてご確認ください。


1. 発生した事象

  • 事象(1)

    • 特定の条件を満たす接客サービスが、最新の配信トリガー設定ではなく、2019/09/17 11:20 時点の配信トリガーをもとにして配信が行われるという事象が発生しました。
  • 事象(2)

    • 特定プロジェクトの特定の接客サービスの配信における「対象イベント(配信トリガー)」において、条件を設定しているにも関わらず、条件が無視され、セグメント条件のみで配信が行われるという事象が発生しました。

2. 発生期間

2019/09/17 11:20頃 - 2019/09/17 13:01 頃

3. 影響を受けたプロジェクト / 接客サービス

  • 事象(1)

    • 対象接客サービス

      • 2019/09/17 11:20 頃 - 2019/09/17 12:41 頃の期間中に作成 / 変更された接客サービス
  • 事象(2)

    • 対象プロジェクト:

      • 2019/09/06 12:04 頃から 2019/09/17 11:20 頃まで接客サービスを一度も作成・変更していないプロジェクト
    • 対象接客サービス

      • 2019/08/06 12:01 頃から 2010/09/17 11:20 頃までに新規作成されていない接客サービス
      • かつ、2019/08/06 12:01 頃から 2010/09/17 11:20 頃までに変更されていない接客サービス
      • かつ、何らかの配信トリガーが設定されているサービス

4. 原因

管理画面の機能追加のための一連の変更によるものです。

今回、管理画面の「対象イベント(配信トリガー)」部分において、「or条件」を指定できるようにするための機能追加を行いました。これに伴い、同機能のデータ保持方法が変更となったため、データを2系統(従来のデータを trigger 、新たなデータを trigger_v2 と呼びます)用意し、下記の順番で、データ移行および画面のリリースを実施しました。

  • 2019年8月6日

    • 接客サービス保存時にtrigger のデータを trigger_v2 にコピーする処理をリリース
  • 2019年9月6日

    • 過去の全ての trigger のデータを trigger_v2 へのデータ移行を実施
  • 2019年9月17日

    • 管理画面のリリースを行い、管理画面およびTrackサーバーは全て trigger_v2 側を参照するに設定

事象(1)の原因

9月17日のリリース後、別のエラーが原因で、Trackサーバーのみをリリース前の状態に切り戻しました。そのため、以下のような状態となりました。

  • 管理画面の設定内容は trigger_v2 に保存されている
  • Trackサーバーからの接客配信は trigger を用いて行われる

このため、管理画面の設定とは異なるデータで配信が行われてしまいました。

事象(2)の原因

配信の実動作の際には、パフォーマンス向上のため、キャッシュレイヤーを設けた上で、データ部分を直接参照するのではなく、キャッシュ部分を参照していました。このキャッシュは、管理画面から接客サービスを作成・編集したタイミングで更新され、一つでも接客サービスが作成・更新されれば、該当プロジェクト内の全てのキャッシュデータが更新される仕組みでした。

しかしながら、今回の機能追加では、 管理画面の操作を介さない方法でtrigger から trigger_v2 へとデータの直接移行を行っており、trigger_v2 に対応するキャッシュ部分が生成されないままの状態でした。

そのため、データ移行を行った9月6日から、機能全体がリリースされた9月17日までの間に、一度も接客サービスの作成・編集を行わなかったプロジェクトでは、 trigger_v2 に対応するキャッシュ部分が存在しない状態が維持されていました。

KARTEでは「対象イベント(配信トリガー)」が存在しない場合「全配信」と判定されてしまうため、結果として管理画面の設定とは異なるデータで配信が行われてしまいました。

5. 恒久対応・再発防止対応

該当機能に関しては、問題点を修正した上で、再度リリースを行います。

また、再発防止対応として以下の検討・対応を行います。

  • trigger のキャッシュに対するTTL(Time to live : データが破棄・再生成されるまでの時間)の設定
  • trigger が空だった場合の処理の見直し(全配信されるのではなく、配信されない側に倒す)
  • データ移行を伴う機能改修における後方互換性維持の徹底
  • データ移行を伴う機能改修における、リリースフローおよび切り戻しフローの見直し

上記以外に関しても、システム的な誤配信を排除するために有効だと思われる手段については、随時積極的に採用していく予定です。


このたびはご迷惑をおかけしてしまい、誠に申し訳ございませんでした。

Posted Sep 19, 2019 - 09:59 JST

Resolved
・本不具合のタイトルを影響の内容にあわせて下記のように修正いたしました。
管理画面で設定したの対象イベント(配信トリガー)とは異なる条件で接客サービスが配信されてしまう場合がある

・不具合事象につきまして現在は発生しない状態になっているため、不具合のStatus を Resolvedに変更したします。詳細な原因・影響範囲・再発防止策については、追って追記させていただきます。

この度はご迷惑をおかけして、大変申し訳ありませんでした。
Posted Sep 17, 2019 - 21:38 JST
Monitoring
本不具合につきまして、新たな影響が判明いたしましたので、お知らせいたします。
ご迷惑をおかけして申し訳ありません。

なお、現在は下記事象は発生しない状態になっております。

### 発生期間
2019/09/17 11:20 頃 - 13:01 頃

### 影響
特定条件を満たすプロジェクトにおきまして、特定の接客サービスが対象イベント(配信トリガー)の設定によらず、すべての view イベントに対して配信されておりました。

### 対象プロジェクト・接客サービス
詳細な対象プロジェクト / 対象接客サービスにつきましては、現在、影響範囲を調査中です。

### 対応状況
先立って共有させていただいた不具合とあわせて、現在は事象が発生しない状態になっています。
Posted Sep 17, 2019 - 18:41 JST
Update
We are continuing to work on a fix for this issue.
Posted Sep 17, 2019 - 18:18 JST
Identified
本不具合の影響内容につきまして続報です。
引き続き影響調査を進めてまいります。ご迷惑をおかけして大変申し訳ありません。

----

### 発生した不具合
不具合(1):
管理画面の接客サービス編集画面で設定した「対象イベント(配信トリガー)」が正しく保存されない

不具合(2):
不具合(1) の影響をうけて、お客様が最後に設定した「対象イベント(配信トリガー)」とは異なる条件で接客サービスが配信されてしまう(もしくは配信されない)

### 発生期間
不具合(1):
2019/09/17 11:20 頃 - 13:01 頃

不具合(2):
2019/09/17 11:20 頃 - 現在

### 影響があった対象の接客サービス
* 上記「不具合(1)」の発生期間中に、管理画面から新規に作成した接客サービス
* 上記「不具合(1)」の発生期間中に、管理画面から「対象イベント」の設定を変更・保存した接客サービス

### 詳細
不具合(1) と不具合(2) によって、上記対象の接客サービスにつきまして、お客様の方で「対象イベント」の設定を変更・保存したにもかかわらず、不具合(1)の発生期間開始時刻(2019/09/17 11:20頃)時点の設定内容で配信トリガーの判定が行われておりました。

結果として、該当接客サービスに対して以下の事象が発生してしまいました。

* 意図しないイベントに対して接客サービスが配信される
* 意図したイベントに対して接客サービスが配信されない

### 現在の状況
不具合(1) については解消済みになります。不具合(2) について、影響があった対象の接客サービスの配信に関する、現在の状況を以下に記載します。

* 不具合(1) の発生期間以降に対象イベントの設定を変更・保存した接客サービス
→ 意図したイベントに対して(=管理画面で設定した内容通りに)接客サービスが配信されます。

* 不具合(1) の発生期間以降に対象イベントの設定を変更・保存していない接客サービス
→ 管理画面上からは、不具合(1)の発生期間開始時刻(2019/09/17 11:20頃)時点の設定内容が確認・編集できる状態になっています。
→ 不具合(1)の発生期間開始時刻(2019/09/17 11:20頃)時点の設定内容で接客サービスが配信されます。
Posted Sep 17, 2019 - 15:01 JST
Investigating
管理画面で接客サービスの対象イベント(配信トリガー)が正しく保存できない不具合が発生しています。

現在開発チームで、原因・修正対応・影響範囲調査をすすめています。

詳細については追ってご報告致します。
Posted Sep 17, 2019 - 13:00 JST
This incident affected: 管理画面.