Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
mknmz --checkpoint オプション中に部分文字列 -S が含まれるときに発生するバグ
- From: "Yoshinori TAKESAKO" <yoshinori-takesako@xxxxxxxxx>
- Date: Mon, 20 Aug 2001 20:29:23 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 01877
竹迫です。
サーバのメモリが少ないため、mknmz 実行時に --checkpoint を指定して
運用しているのですが、ちょっと不可解な現象に遭遇しました。
現象をわかりやすく説明するため、若干 mknmz の出力を編集していますが、
以下のコマンドで、インデックスを作成しようとすると、、、
C:\> mknmz --checkpoint -U -O D:\namazu-index\H-SVR E:\H-SVR\Mktg
────────────────────────────────────
検索対象のファイルを調べています...
697個のファイルがインデックス作成の対象として見つかりました
1/697 - /E|/H-SVR/Mktg/BIZプラン/BIZPLAN.ppt [application/powerpoint]
2/697 - /E|/H-SVR/Mktg/BIZプラン/CAD&CAE.PPT [application/powerpoint]
3/697 - /E|/H-SVR/Mktg/BIZプラン/CAT-PLAN.PPT [application/powerpoint]
4/697 - /E|/H-SVR/Mktg/BIZプラン/CAT.PPT [application/powerpoint]
5/697 - /E|/H-SVR/Mktg/BIZプラン/CAT方針.ppt [application/powerpoint]
6/697 - /E|/H-SVR/Mktg/BIZプラン/FY00_MKTG_1H_KICK-OFF.ppt [application/powerpoint]
インデックスを書き出しています...
チェックポイントに到達しました。mknmz を再実行します...
7/697 - /E|/H-SVR/Mktg/BIZプラン/FY98-CHプラン.ppt [application/powerpoint]
8/697 - /E|/H-SVR/Mktg/BIZプラン/FY99-CAE_SBU質と量の改善.ppt [application/powerpoint]
9/697 - /E|/H-SVR/Mktg/BIZプラン/FY99-CAE_SRのQ&テリトリー.ppt [application/powerpoint]
10/697 - /E|/H-SVR/Mktg/BIZプラン/FY99-CAEフレームワーク素案.ppt [application/powerpoint]
11/697 - /E|/H-SVR/Mktg/BIZプラン/LFP.PPT [application/powerpoint]
インデックスを書き出しています...
チェックポイントに到達しました。mknmz を再実行します...
使い方: mknmz [オプション] <対象>...
`mknmz --help' でより詳しい情報が表示されます
────────────────────────────────────
となって、2回目のチェックポイントに達したときに
必ず mknmz の再実行に失敗してしまうのです。
mknmz スクリプトの re_exec() サブルーチンの中の最後の方で、
print _("Checkpoint reached: re-exec mknmz...\n");
util::dprint(join ' ', ("::::", @ARGV, "\n"));
exec ($0, @ARGV) ;
}
としている部分で、@ARGV の中身を確認してみると、
1回目のチェックポイントに達したときは、
:::: -S --checkpoint -U -O D:\namazu-index\H-SVR E:\H-SVR\Mktg
~~ ~~ ~~
と正しく @ARGV の値が引き継がれていましたが、
2回目のチェックポイントに達したとき、@ARGV の値が
:::: -S --checkpoint -U -O
となり、部分文字列 -S を含んだオプションが
すべて削除されてしまっているようでした。
デバッグしてみると、mknmz スクリプトの parse_options() サブルーチンの中で
ちょっと怪しい部分がありましたので、以下の修正を commit しました。
--- mknmz.in.orig
+++ mknmz.in
@@ -1152,7 +1152,7 @@
if ($opt_checkpoint_sub) {
$CheckPoint{'on'} = 1;
$CheckPoint{'continue'} = 1;
- @argv = grep {! /-S/} @argv; # remove -S
+ @argv = grep {! /^-S$/} @argv; # remove -S
}
この修正で、上記不具合は起きないようになりました。
もちろん、mknmz --checkpoint のオプション中に -S という部分
文字列が全く存在しない場合は、このような不具合は発生しません。
以上、バグ修正の報告でした。
--
広島市立大学 情報科学部 情報機械システム工学科 知能ロボット講座
竹迫 良範 <takesako@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>