Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: Patch to ignore files removed while mknmz processing index
>> On Sun, 16 Sep 2001 21:38:18 +0900
>> 「藤」== makoto@xxxxx (藤原  誠 / Makoto Fujiwara) said as follows:
藤> 問題になっている件は Namazu のどの版で出ているのでしょうか。2.0.5 
藤> 以前 でしょうか、あるいは 2.0.6 以降 でしょうか。
Namazu-2.0.6 を使用しています。
私が問題にしている個所は、以下の部分なのですが、
  sub filesize($) {
      my ($arg) = @_;
      my $fh;
      if (ref $arg) {
          [中略]
      } else {
          $fh = efopen($arg) || return 0; # in case file is removed after find_file
      }
      my $size = -s $fh;
      return $size;
  }
ファイルを開くために efopen() を使用していますから、ファイルが存在しな
い場合は、問答無用に die されてしまいます。
これを避けるために、efopen() の代わりに fopen() を使用するべきだ、とい
うのが [namazu-devel-ja:2030] に添付した前半のパッチの趣旨です。
後半の mknmz 本体に対するパッチは、process_file() 内で 
util::filesize() が 0 を返した場合に、何もせずにそこで関数から抜けるこ
とを保証するための変更で、ひょっとしたら不要なのかも知れません。
Namazu-2.0.7 でも確認してみましたが、同じ問題を再現させることができま
した。
-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )