2006/05/02

致命的欠陥

テストしていて気がついた。主筆に致命的欠陥がある。

テスト項目としては、起動時のウインドウサイズと表示位置に関するものだったのだのだが、そのときテストの一環として、主筆を連続して多数起動してみた。そうしたら、主筆を起動できる回数に制限があることに気がついた。

61回目に起動したときに、プラグイン設定ファイルが読めなくなってプロセスが落ち、62回目からはフォントセットの構築に失敗してプロセスが起動できなくなる。

状況の再現が困難な(というか体力的につらい)事もあって原因追及が大変だったのだが、何とか理由を見つけた。

結局原因は、ファイルディスクリプタの使いすぎだった。「主筆」では、エディタとしての主筆が標準出力や標準エラー出力に吐くメッセージを、主筆クライアントが起動されたときに使用された端末エミュレータに表示できるよう、標準出力や標準エラー出力の付け替えを行っている。ところが、それが原因でファイルディスクリプタの不足が生じるようになってしまったのだ。

対処としては、不要なディスクリプタを閉じるようにすればいいだけなのだが、それがどうも難しい様な気がする。状況が複雑で、まだ正確なバグの発生状況を突き詰められていないのだ。

だが、元々こういう事をやっているのはデバッグの為であって、基本的にリリース版では必要ない機能を実現するためなのだ。それを考えると、この処理を取っ払ってしまうという対処も考えられる。だから、問題の箇所をコメントアウトするだけでよしとしておいた。

この問題は第16版以降で対処することにしよう。

0 件のコメント: