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 )