[mecab-devel 65] MeCab0.96、Javaバインディングのテスト中にJava VMごと落ちます。

Zurück zum Archiv-Index

御厨 寛人 mikur****@datas*****
2007年 6月 30日 (土) 13:26:03 JST


はじめまして、御厨と申します。

Javaのバインディングをテストしています。
MeCabに同じ文書を延々と投げると、不定期にJava VMごと落ちてしまいます。
正常に動作させるためには、どうしたらよいのでしょうか?
環境、現状などを以下に記します。

宜しくお願いします。

■環境■
Red Hat Enterprise Linux Version 4 (UTF-8環境)
mecab-0.96.tar.gz (通常インストール、UTF-8のみインストール、両方試しまし
た。)
mecab-ipadic-2.7.0-20070610.tar.gz
mecab-java-0.96.tar.gz

■現象■
Javaバインディングで、MeCabを呼びだしています。
途中で、以下のようなエラーが発生し、Java VMごと落ちてしまいます。

./sh/mecab_test.sh: line 7: 31977 アボートしました
/usr/local/java/bin/java ...
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xa465b482, pid=31999, tid=2755038128
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0_10-b03 mixed mode)
# Problematic frame:
# C [libMeCab.so+0x2482] Java_org_chasen_mecab_MeCabJNI_Node_1next_1get+0x6
#
# An error report file with more information is saved as hs_err_pid31999.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp

■原因■
org.chasen.mecab.NodeクラスのgetFeature()を操作すると落ちるようです。
getFeature()を呼び出すだけでは、エラーが起きませんが、
getFeature()で取得した文字列を操作すると落ちます。
不定期に落ちてしまうので、内部的な問題のような印象を持ちました。

■サンプルプログラム■
同じ文書を延々とMeCabへ投げ続け、
意味無くひたすらgetFeature()を1文字切り取る処理です。

public class MeCab {
private static MeCab mecab;

private MeCab() {
try {
/* ライブラリlibMeCab.soの呼び出し */
System.loadLibrary("MeCab");
} catch (UnsatisfiedLinkError e) {
e.printStackTrace();
}
}

public static MeCab getInstance() {
if (mecab == null)
mecab = new MeCab();

return mecab;
}

public void analyze(String text) throws Exception {
if (text == null)
return;

Tagger tagger = new Tagger();

/* Nodeが無くなるまで処理を続ける */
for (Node node = tagger.parseToNode(text); node != null; node = node
.getNext()) {
/* 意味不明に1文字切り取り処理 */
node.getFeature().substring(0,1);
}
}

public static void main(String[] args) {
MeCab mecab = new MeCab();
int count = Integer.parseInt(args[0]);
for (int i = 0; i < count; i++) {
System.out.println("try:" + i);
try {
mecab
.analyze("19日午前11時半ごろ、東京都新宿区西新宿7丁目の青梅街道沿い
の雑居ビルの壁面から、看板(縦約1.5メートル、横約5メートル、厚さ十数
センチ)が落下した。歩道を歩いていた会社員の女性(28)が看板の下敷きに
なり、骨盤の骨を折り頭を約4センチ切って重傷を負った。また、男性(23)
が落下した看板を持ち上げる際、手を切り、軽傷。新宿署が落下した原因や看板
の管理状況を調べている。");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}




Mecab-devel メーリングリストの案内
Zurück zum Archiv-Index