kagamihogeの日記

kagamihogeの日記です。

データ破壊

ここのところ低水準入出力ルーチン使ってディスクを読み書きするコードを相手にしています。その時にやってしまった衝撃的な失敗。

それは、ディスクに書き込みを行う機能で、大量のデータを投入したらどうなるかのテスト中のこと。途中までは上手く行くのだが、ある地点から応答が返ってこなくなる。コアダンプ吐くわけでもなし。何だろなぁと思いつつ、書き込んでるアドレスのログを取る。

で、出力されるアドレス番号を見ると応答が無くなる地点のアドレスがデカすぎる気がする。もしや、と思ってディスクの容量・・・というより末尾のアドレスを見ると、無応答地点のアドレスがそれを越えてしまっている。つまり、アドレスの計算をトチッてディスクの末尾越えてもなお書き込もうとして応答停止していたらしい。

これがもし本番環境だったらと思うと震えがとまりません。