[Namazu-users-ja 216] Re: mknmz がセグメンテーション違反で落ちる

Yukio USUDA usuda @ hsba.go.jp
2005年 1月 26日 (水) 18:11:48 JST


臼田です

有馬 章悟 wrote:
> 
> 私の書き間違えです。コアダンプした文書をみると
> 分かち書きされていたので、上記のように書きました。
> 
> 実際は、mknmzで分かち書き処理の途中でコアダンプしたという
> ことですよね?
> 
Perl スクリプトが Perl そのものを異常終了させることはない
ようなので
C で書かれている Text::Kakasi などの Perl モジュールで問題がおきて
いる可能性が高いです。

module_kakasi が原因かどうかは確かではないので、
原因を切り分けるために
・問題となっているファイルが /usr/local/bin/kakasi では正常に処理
  できるか確認してみる
  $ nkf -e ファイル名 | kakasi -w

・mknmzrc を編集して $KAKASI の行を module_kakasi の代わりに
  /usr/local/bin/kakasi を使うようにしてみる
  $KAKASI = "/usr/local/bin/kakasi -ieuc -oeuc -w";

としてみて問題が解消されれば Text::kakasi で問題が起きている
ということに特定できるかと思います。

> >
> >$ gdb perl
> >(gdb) run /usr/local/bin/mknmz 引数
> >
> >というように実行すれば、デバッガで引っ掛けられますよね。
> >で、落ちたら
> >
> >(gdb) where
> >
> >で、どこで落ちたか確認してもらうのが良いですかな。
> 
> (gdb) run -a --media-type=text/plain /usr/local/namazu_gw_data/dfs/GDOCS -O /usr/local/namazu_gw_data/d

ここは
(gdb) run /usr/local/bin/mknmz -a --media-type=text/plain /usr/local/namazu_gw_data/dfs/GDOCS -O /usr/local/namazu_gw_data/d

ではないでしょうか。

> 
> また、mknmzがコアダンプするに伴って、以前検索にヒットしていた
> 文書がヒットしなくなりました。
> コアを吐く文書は削除したあとに、mknmzを実行し、正常終了、
> NMZ.*も更新されています。
> nknmzがコアダンプで異常終了した場合は、インデックスの再作成を
> 行う必要があるのでしょうか?
> 
mknmzが正常終了しなかった場合に残ったインデックスは捨てて
再作成をしたほうがよいと思います。

臼田幸生





Namazu-users-ja メーリングリストの案内