/note/tech

「Fujitsu MICJET コンビニ交付」サービスで発生した印刷障害について

2. 原因について

コンビニエンスストアで証明書交付申請をされる方が増加し、取引負荷が高まったため、印刷処理における遅延が発生いたしました。この遅延に起因し、システム上設定されていたタイムアウトの上限を超える状態となり強制的な印刷処理の解除が生じ、次の印刷イメージファイルを誤って取得したため、申請された方とは異なる住民の方の証明書が発行されました。

負荷が高まり処理がタイムアウトすると印刷処理を解除する → しかし、印刷イメージファイルは削除されないままキューに残る → 次のプロセスがキューの一番上に残されているイメージを取得&印刷 → インシデント! って感じなのだろうか?

これは負荷テスト以前に異常系の設計がお粗末過ぎる気がするのだが。

住民票の取得を管理するシステムと印刷を制御するシステムと印刷キューを管理するシステムの協調動作が必要とは言え、印刷が失敗した場合の後始末は負荷が高低に関わらず行われなければならないはず。

しかし、そうなっていないという事はコンビニのプリンタからの印刷ステータスの通知を受け付けるAPIも印刷システムと同じサーバに載せていたので、仲良く処理が止まっていたみたいな状態だったのだろうか。

関連: