fugashi icon indicating copy to clipboard operation
fugashi copied to clipboard

-Odumpとnbestを併用した場合に時々クラッシュする

Open prj-beatrice opened this issue 7 months ago • 1 comments

初めまして、いつも便利に使わせていただいております。

Linux 環境 (Ubuntu 22.04) で、以下のようなコードを実行した場合にクラッシュすることがあるようです。

tagger = GenericTagger("-Odump")
tagger.nbest("煮こみつけ麺のセット", num=300)

発生条件はかなり不明瞭ですが、

  • 特定の文字列が含まれると起こりやすい
  • num が大きいと起こりやすい
  • 毎回発生するわけではなく、複数回実行しないと発生しないこともある

ように思われます。

ひとまず、以下の Colab Notebook を上から順に実行すると再現するようです。 https://colab.research.google.com/drive/1qAHYMH2al9KTr3dzcqCbKCZzv2t3ZgGA

よろしくお願いいたします。

prj-beatrice avatar Jun 09 '25 16:06 prj-beatrice

返事が遅くなりすみません。細かいご報告と再現方法の情報、ありがとうございます。

こちらでは下記のコードで再現できます。

from fugashi import GenericTagger

for ii in range(0, 100):
    print(ii)
    tagger = GenericTagger("-Odump")
    tagger.nbest("煮こみつけ麺のセット", num=50)

num=300num=100では単に segmentation error となりますが、50だと以下のようなエラーが出ます。

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
中止 (コアダンプ)

まだ詳しく調べたわけではありませんが、おそらくMeCab内部のメモリー管理の問題かと思います。 -Odump以外で再現できませんでした。

後でまた調べてみますが、解決が難しいかもしれません。

polm avatar Jun 11 '25 13:06 polm