[mecab-devel 72] Javaから高負荷に呼び出すとbad_alloc exceptionがthrowされる

Back to archive index

tobit****@mail***** tobit****@mail*****
2007年 10月 24日 (水) 23:08:01 JST


工藤様

はじめましてムカイと申します。

全文検索システムからmecabを使用していますが、
複数スレッドから高負荷に呼び出すと、bad_alloc exceptionがthrowされて
しまいます。
デバッグしたところ、Nodeを生成しているnewでallocateに失敗しているようです。

現在のソースではbad_allocをcatchしていませんので、結果としてterminateが
呼び出され、強制終了してしまいます。

Javaから呼び出していますので、JNIのラッパー関数内でbad_allocをcatchして、
Javaのexceptionに変換して戻すようにしましたが、そもそもallocateに失敗する
ほどメモリが枯渇しているわけではないようですので、newの失敗には別の理由が
あるのではと考えていますが、何かおわかりになりますでしょうか?

#taggerのインスタンスは処理ごとに生成しています。

御手数をおかけしますが、ご回答のほどよろしくお願い申し上げます。




Mecab-devel メーリングリストの案内
Back to archive index