[Namazu-devel-ja]Solaris環境で、mknmzがワーニングエラーを多量に出す、あるいは止まる。

Taki, Yasushi taki @ justplayer.com
2004年 6月 8日 (火) 02:38:37 JST


瀧@ジャストプレイヤーです。
お世話になります。

Solarisのjfpuパッケージをインストールしたおかげで状況が変わってきました。

On Mon, 07 Jun 2004 05:15:25 +0900
Tadamasa Teranishi <yw3t-trns @ asahi-net.or.jp> wrote:
> > 4. couldn't set locale correctly
> > これは、旧MLで4044あたりのスレッドで話していたとおり、
> > LANGにjaを入れるだけでエラーがでます。
> > また、/usr/lib/localeにはjaというディレクトリが存在しております。
> > 次のように設定してあるんですが、この場合。基本的にいずれもjaで良いんです
> > よね?
> > LANGUAGE=ja; export LANGUAGE
> > LANG=ja ; export LANG
> > LC_ALL=ja ; export LC_ALL

まずはこれから。
今回、下記のパッケージをインストールすることでいろいろなことが変わりました。

SUNWjfpu

英語だけの検索エンジンを入れる場合を除き、
Solaris8に入れるTips?のようなものかもしれません。

LANG、LANGUAGE、LC_ALLは、ja_JP.eucJP にする必要があるかどうかは分かりません。
ディレクトリは、jaにリンクが張られているだけみたいですけれど。

> > 1.ワーニングがでるファイルタイプについて
> > .mknmzrcを編集し、htmlドキュメントのみの対象にしたら、フルセットでインデッ
> > クス作成をしても、エラーは起きませんでした。xlhtml、pdftotextに限らずで
> > ていたのですが、htmlのみではでないということになります。
> > 従って、xlhtmlのみの問題ではないが、共通項は外部フィルタを使うあたりに、
> > 問題を抱えていたと推測できました。
> かもしれませんが、違うかもしれません。思い込みで、結論を急ぐのは良く
> ないでしょう。
> 例えば、xlhtml で問題が起こってインデックスファイルが壊れたため
> に、以降ワーニングがメディアタイプにかかわらず発生したという可能性
> もあります。
> # 何せ、ワーニングの原因はインデックスが壊れていることによるものと
> # 思われるため。
> 事実を積み重ねて結論を出しましょう。

確かに。

> > 2.日本語ロケールの件
> で、新しい Namazu で make check は通りますか?
> make check のどこで couldn't set locale correctly が出るで
> しょうか?

SUNWjfpuを入れる前は、およそすべての箇所でcouldn't set locale correctly
が発生しました。ただし、ALL PASSEDでした。

しかし、SUNWjfpuを入れることで、ほぼすべてのエラーが消えました。
現在は、下記のような形で1カ所のみであり、FAILです。

PASS: mknmz-1
PASS: mknmz-2
PASS: mknmz-3
PASS: mknmz-4
PASS: mknmz-5
PASS: mknmz-6
PASS: mknmz-7
PASS: mknmz-8
PASS: mknmz-9
PASS: mknmz-10
PASS: mknmz-11
PASS: mknmz-12
PASS: mknmz-13
PASS: mknmz-14
PASS: mknmz-15
PASS: mknmz-16
PASS: mknmz-17
PASS: mknmz-18
PASS: gcnmz-1
PASS: idxdiff-1
PASS: idxdiff-2
PASS: idxdiff-3
PASS: namazu-1
PASS: namazu-2
PASS: namazu-3
PASS: namazu-4
PASS: namazu-5
PASS: namazu-6
PASS: namazu-7
PASS: namazu-8
PASS: namazu-9
PASS: namazu-10
PASS: namazu-11
PASS: namazu-12
PASS: namazu-cgi-1
PASS: namazu-cgi-2
PASS: namazu-cgi-3
PASS: namazu-cgi-4
PASS: namazu-cgi-5
PASS: namazu-cgi-6
PASS: namazu-cgi-7
PASS: namazu-cgi-8
couldn't set locale correctly
FAIL: namazu-cgi-9
PASS: namazu-cgi-10
PASS: ja-mknmz-1
PASS: ja-namazu-cgi-1
PASS: ja-namazu-1

> この状態で、以下のスクリプトを実行した場合は 
> "couldn't set locale correctly" が出ますか?
> #!/bin/sh
> echo $LANG
> exit 0

すみません。
事情があって、これを同じ環境でテスト出来ないのですが、代わりに、
関係ないLANGを設定したときのパターンは次のようになります。

> cat >test3.sh
echo $LANG
exit 0
^C
> sh test3.sh
ja
> setenv LANG ja_JP.EUC
> sh test3.sh
couldn't set locale correctly
ja_JP.EUC
> setenv LANG ja_JP.eucJP
> sh test3.sh
ja_JP.eucJP

このようになります。
だめなものを入れると、読もうとしただけでエラーがでるようですね。

> > いずれにせよ、次は日本語パッケージに問題がないか調べてみようと考えており
> > ます。
> 出るような日本語パッケージ関係を調べ直した方が良いかもしれません。

これは具体的なパッケージ名を調べて起きます。

> > 5. 生まれた問題
> > namazu.cgiが動かなくなった。
> 作り直した namazu.cgi ですよね?
> > .namazurcないでLANG jaにしているのですが、
> > やっぱり日本語周りと関係有りそうな気がします。
> > 具体的な動かない点は、CGIが画面にNMZ.head.jaを読んで表示した後、その先を
> > 表示しないというものです。
> 表示しないだけで正常終了しているのでしょうか?
> Web サーバのログや NMZ.warnlog に何か書かれていませんか?

インストールしたのはもちろん作り直したnamazu.cgiです。
これですが、.namazurcのLANGが不正なものだと、止まりませんか?

実は、FreeBSDでも試していて、FreeBSDでは、
○画面中
Content-type: text/html
Error

processing time exceeds a limit: 60
○エラーログ
namazu.cgi in malloc(): warning: recursive call
namazu.cgi in malloc(): warning: recursive call
namazu.cgi in malloc(): warning: recursive call
namazu.cgi in malloc(): warning: recursive call

となります。
Solarisの方はエラーログには乗りませんが、画面は同じです。

--------------------------以下、FreeBSDの別件の話
以前はnamazurcの記載は、LANG=jaで動いてたのですが、何かの拍子(?)で、
jaへのlocaleのリンクが消えたのか、あるいは13系で変わったのか、突然上記の
ような状態になりました(社内用検索サイトで、ある時、動かなくなってたので
気がつかなかった)。
--------------------------

これは、正直、なかなか分かりづらかったので、
webサーバのerror_logに、それっぽい奇跡が残るとありがたいです。

> > 6. xlhtmlの問題?
> ...
> > 入れ替えをしたのですが、一部xlhtmlがバスエラーを出し、変換に失敗するだけ
> > で、おおむねうまくいっております。これはxlhtml -m ファイル名で行っても、
> > 同じバスエラーなのでxlhtml上の理由であることがわかります。
> > とりあえず、ここではこれはおいておきます。
> バスエラーは致命的な問題です。
> xlhtml でバスエラーになるようなファイルは、mknmz で処理しないで
> ください。

そうですね。xlhtmlをQuickHackしたほうが良いような気がしてきました。

そしてこれですが、

1. サーバの設計者
2. WEBサーバ周りの設計者
3. WEBシステムの設計者
4. WEBコンテンツの設計者
5. コンテンツを入れる人

など、担当が別れてるときに、5の人が入れるExcelファイルがエラーかどうか分
からないので、使う側的にも、mknmz的にもエラーの時は、エラーコードで落ち
て欲しいですよね。

これに関しては、とりあえずxlhtmlの問題ってことで・・・・すよね?
#あとでHackが簡単かどうか、Cのソースを覗いて見ます・・・

> > 7. 止まるファイル
> > 止まるファイルは未だにあります。ただし、前回と違い、今回は現状xlhtml経由
> > でしか問題を発見しておりません。pdftotext経由では起きなくなっていますが、
> > 以前はpdftotextでもでたので、これは今回たまたまであり、まだほかに何か関連
> > があるのかもしません。
> > 止まると、いう症状ですが、mknmzがCPUを99%使い、kill さえ受け付けなくな
> > ります。kill -9をしないと落ちない状況です。
> mknmz では SIGTERM を受け取ると、次の文書を処理する際に終了する
> ようになっています。(即時終了しません。これは終了処理を行うためです。)

なるほど!

> kill で終了しないということは、まだあるファイルの処理が終わっていない
> ためでしょう。つまり、そのファイルの処理が異常に時間がかかっているか、
> 無限ループに入っているということになります。
> その原因はきちんとつめていかないと、はっきりとしたことは言えません。

ですね。

> NMZ.err に何か書かれていませんか?

残念ながら、何もかかれておりません。

> そして、その止まるというファイルは特定のファイルでしょうか?

特定のファイルだと思ったのですが、そのファイルを無くしたところで、次のファ
イルあたりで止まります。

そして、このときの状況は、このような形。
> ps -aef -o'pid pri opri pcpu pmem time etime stime fname '
     5892   0  99 98.9  5.2       59:15    01:00:50 00:53:47 mknmz

メモリを5%も食べてます。このpmemがスワップ込みとかだと分からないのですが・・・・。

とりあえず、今分かっていることを。

・止まっている状態で、ps -aefを取ると、mknmzしか動いていないように見えます。
・該当のファイルを
   xlhtml foo.xls | lv | chasen -F "%m "
 すると、一瞬で帰ってきます。
・該当のファイルを消しても、およそ次で止まります。
・止まる前は正常終了してるのに妙に遅いです。5分ぐらい考えることもあります。
 そのようなファイルも上記のパイプ処理で一瞬で帰ってきます。
・killをしてしばらく放置しても、トラップしない・・・・と思ったら、
  SIGTERM caught!
 で、忘れたころに帰ってきました。
・メモリも結構沢山食べてます。

#確認までに、Solarisって-aefですべて見えるはずなんですよね?


今のところは以上です。


#日中は別の実務が別にあってなかなか進まない・・・(笑

------------------
〒424-0821 静岡県静岡市清水相生町6-17
静岡市清水産業・情報プラザ611
(有)ジャストプレイヤー
瀧 康史
TEL : 0543-53-7660  FAX : 0543-53-7661
mailto:taki @ justplayer.com  http://www.justplayer.co.jp/





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