東証システム障害の真因

直接的な原因は設定ミスなのだろうが、システム障害の真因は設定関連の仕様のバグに見える。

板情報を配信するプログラムは本来、1銘柄当たり1280バイトの作業用メモリー領域を2万8000銘柄分、合計3万5000Kバイト確保するよう記述しなければならない。だが、1銘柄当たりのメモリー領域を誤って4バイトとしてしまったため、プログラムは本来の320分の1の109.375Kバイトしか確保しなかった。結果として89銘柄以上の板情報の問い合わせが同時に発生すると、作業用メモリーが足りなくなり、情報配信システムがダウンした。

「1銘柄当たりのメモリー領域を誤って4バイト」と指定できてしまうような仕様にそもそもの原因があると思う。「1銘柄当たり1280バイトの作業用メモリー領域」であるならば、銘柄数が決まれば確保すべき作業用メモリー領域も決まってしまうのだから、銘柄数を指定するだけでも充分なはずである。
人間の入力ミスを考慮に入れないプログラムは、実用に耐えるプログラムとは呼べない。「人間の入力ミス」は、プログラムの設定時にも当然起こり得るのだから、プログラムの設定時の入力ミスに対しても充分な考慮が必要である。充分な考慮がなされていたようには思えない。