Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [namazu-users-ja] mknmz-2.0.2: die _("unsupported target: ")
- From: knok@xxxxxxxxxxxxx (NOKUBI Takatsugu)
- Date: Thu, 3 Aug 2000 18:35:36 JST
- X-ml-name: namazu-devel-ja
- X-mail-count: 00659
namazu-devel-ja に振ります。
<00Aug3.014348jst.29573@xxxxxxxxxxxxxxxxxx>の記事において
hide@xxxxxxxxさんは書きました。
>> immknmzをつかってメイルのインデックスをつくっています。
>> バックグラウンドでインデックスを作成しているときに
>> 微妙なタイミングでファイルを消したらmknmzが終了してしまいした。
>> 具体的には find_target で止まったようです。
この問題は、ファイルの一覧を生成した時にはファイルがあって、いざ処理
をしようとした時にファイルが存在しないと die してしまうのだと思います。
>> *** mknmz.org Thu Aug 3 00:39:42 2000
>> --- mknmz Thu Aug 3 01:19:52 2000
>> *************** sub process_file ($$$$$$) {
>> *** 162,167 ****
>> --- 162,169 ----
>> my ($cfile, $docid_count, $docid_base, $file_count,
>> $field_indices, $fh_errorsfile, $total_files_num) = @_;
>>
>> + return (0, 0) if (! -f $cfile);
>> +
>> my $processed_num = 0;
>> my $file_size = util::filesize($cfile);
このパッチでも、-f $cfile と util::filesize の間でファイルを消されて
しまうとやはり問題になりますよね...
確実な対策としては、Unix 環境なら file を open してその可否でファイ
ルの存在を確認することでしょうか。その後で消されても inode はまだ残り
ますから。
# そうやってできたインデックスに意味があるのかどうか、という問題もある?
しかし、Win32 環境の場合はどうなるんでしょうか。この辺りに詳しい方い
らっしゃいませんか?
>> find($wanted_closure, cwd());
>> chdir $cwd;
>> } else {
>> ! print STDERR _("unsupported target: ") . $target . "\n";
>> }
>> }
なにはともあれ die しないでに継続させた方が良いのかもしれない... die
するかわりに NMZ.log.critical とかに記録させるとか。
--
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
nokubi@xxxxxxxxx (official)