Suicaの改札トラブル

障害の引き金になったのが、2バイト(2進法で16けた)のデータだった。例えば改札機の場合、ネガデータは5451件分(6万5518バイト)を一区切りとして処理される。処理は4バイトずつ進めるため、最後に2バイト余る。全角ひらがなや漢字1文字分のデータ量だ。

 半端な2バイトも、件数がこの一区切りまでなら正常に処理されていた。だが、5452件以上になると「85件増すごとに5件の割合で、余った2バイトの処理を忘れる」(同社)というプログラムの欠陥があった。

相互利用が始まった3月から9月下旬まで、ネガデータは障害が発生する件数に達していなかった。以後もたまたま障害の条件をすり抜けていたが、10月12日のデータは「5件」に合致して2バイトが欠落し、改札機が立ち上がらなくなった。


何書いてあるのかわからんけど、がんばって読むと、

  • Suicaのネガティブデータは 5451件ごとに 65518byteを消費する
  • 1件あたりでは、65,518 byte / 5,451 件 = 12.019446 byte/件になる
  • Suicaの利用開始から、これまでのネガティブデータ合計が 5452件(ちょっと自信ないな)

ということがわかる。すると、まあ、ネガティブデータは Suica 1枚あたり 12bitというところか。