トップ «前の日記(2005-09-07) 最新 次の日記(2005-09-19)» 編集

人徳ゼロ日記


2005-09-12

_ システムコールに誤りを混ぜ込むツール FIG で信頼性テストが自動化できるかも

最近、ROC(Recovery-Oriented Computing)という考え方を調査しています。ROCとは、システムを落ちないように作るのではなく、落ちることを前提にいかにリカバリを簡単素早く確実にするのかを考えてシステムを作る方が、多くの用途では費用対効果がよい、という考え方です。

ROCを調べる課程で、FIGという面白いツールを見つけました。libcのラッパとして動き、システムコールの結果に誤りを混ぜ込むライブラリです。LD_PRELOADで実行時に混ぜ込みます。信頼性試験は故障を起こさないといけないのでなかなか簡単に試せず、結果としてテスト不足になってしまうのですが、FIGがあるとテストしやすくなります。最終的には実際の機器に異常を起こすテストが必要ですが、自動化の範囲が広がるのはうれしいです。

実際に試してみました。Debian Sarge上で動かしましたが、簡単に動作しました。lsだとか、emacsの様な手近なソフトにエラーを混ぜ込みましたが、見事に落ちまくり。エラーを無視して落ちない方が問題なので、こんな感じでしょう。

JavaならAOPでエラーを混ぜ込むことになるのでしょうね。ひたすら起動、エラーを自動で繰り返して、データに不整合が生じないことを確かめる、耐久試験がやってみたい。