SSブログ

ソフトウエアのエラー処理 [ソフトウエア]

32bit オペレーションシステムで2Gバイトの壁に再びはまってしまいました。

といっても、今回は実装の話ではありません。エラー処理の話です。私はメーラーに Thunderbird を使っているのですが、先日、メールを受信しようとしたら、突然ハングしたり、落ちるようになりました。送信は問題ないのに受信をしようとすると問題が発生します。

受信ボックスはかなりの量があったので、2Gバイトを超えちまったかなと思い、振り分けをして受信ボックスを空にしたのですが、それでも症状はかわりません。いろいろと調べてみたはものの、やっぱりメールを振り分けなおせばだいたい直ると書いてあります。う~ん、困りました。

しょうがないので受信フォルダを直接覗き、INBOXを見てみたところ、メーラー上では受信ボックスは、空になっているのにも関わらず、受信ボックスのファイルは2Gバイト以上になったままでした。振り分け処理は、単にコピーをしただけで、実体は減らされていないようです。そこで、振り分けされたメールがきちんと保存されていることを確認した上で、INBOX を削除したところ、無事、復旧しました。
つまらないことで時間を使ってしまったものです。

どうも、Thunderbird は、2Gバイト以上になってしまったファイルの扱いが、ルーチン毎にバラバラのようですね。読み込み処理ではファイルのオープンエラーをリカバリーする処理があるようですが、INBOXの再作成では更新時にエラーが返ってきた時点で処理を抜けているようです。さらに、メールの受信処理では、エラーハンドリングもしていないようです。そのせいで、最初、問題がどこにあるのかよく分からず戸惑ってしまいました。

オープンソースだけあって、エラー処理の仕様の統一性がとれていないのが如実に表われていて、ちょっと面白い例だなと思いました。

メーカーの製品開発でも、機能仕様は関係者間で設計や詳細仕様を詰めますが、エラー処理は実装者の判断に任されていることが多いと思います。しかし、この例でも分かるように、エラー処理も仕様を統一しないと、問題の特定がしにくく、品質の維持が難しいソフトウエアとなってしまいます。

目立つところだけでなく、エラー処理のような細かい部分にもきちんと気を配ったソフトウエアを作っていきたいですね。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

大手メーカのシステムエンジニアの日々の雑感を綴るブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。