首都圏の自動改札障害

10月12日早朝から首都圏のJR東日本や私鉄、地下鉄の一部の駅で自動改札機が作動しないシステム障害が発生した。

今回の起動障害はJR東日本や私鉄、地下鉄の合計662駅で発生しているが、日本信号の機種に集中していて、他のオムロン、東芝の機種では障害になっていない事から、日本信号の改札機における不正カード判定プログラムの潜在バグだった模様。

ITmediaの記事によると

更新までに1年ほどあったというテスト期間では“魔物”は見つからず、運用開始から半年以上経ったこの日の朝、本番環境で判明するという最悪の事態になった。

とか

ネガデータにダミーを挟むなどして条件を変えれば問題なく読み込めることは分かっている

とされているので、どうやらセクタなりセグメントなりのバウンド処理をしくじった類である気配が濃厚。

一般的に自前の試験では作り手の思い込みから抜けられないので、想定外のシナリオを描きやすい第三者に試験してもらう方が問題を見つけやすいのだが、**「ある長さ、ある件数といった条件が重なった時にデータが読み込めなくなる不具合」**だとすると、第三者の方が見つけやすくなるとも思えない。

基本的にこのようなバグを防ぐ施策としては、設計レビューやソースコードレビューを充実させるというのがセオリーなのだが、だからと言ってこういう複雑で厄介なシナリオまでシミュレートしてチェックできるか?というとそれも微妙だ。やはりプログラマにバウンドをうまく処理する事ができるだけのセンスとスキルを身につけさせるのが一番の解決策であり、そういう資産や人材を持っていたオムロンや東芝ではバグが出なかったという事だろう。

まぁ、日本信号のプログラムも全て自社社員による開発とは限らないし、派遣プログラマはおろか、大手SIerへの丸投げかもしれない。そういう意味ではオムロンや東芝もまた同じで万全とは言い難い。何をもってどこが良いかを論じるのは大変難しいところだ。

今回は予約に関係無かったので改札開放で利用者への甚大な影響は避けられたようだが、この秋から始まったANAのskipサービスでも同じ様な事が起こったら予約が絡むので大変な事になりそうな予感がヒシヒシ。

参照

日経ITPro http://itpro.nikkeibp.co.jp/

ITmedia http://www.itmedia.co.jp/

東日本旅客鉄道株式会社 http://www.jreast.co.jp/

日本信号株式会社 http://www.signal.co.jp/