[groonga-dev,00244] Re: TokenMecabを指定してレコードを追加するとSEGVが発生する

Back to archive index

morit****@razil***** morit****@razil*****
2009年 10月 21日 (水) 05:27:42 JST


森です。

ありがとうございます!!

問題なく動作するようになりました。

>>> Kouhei Sutou さんは書きました:
> 須藤です。
> 
> In <20091****@epepe*****>
>   "Re: [groonga-dev,00209] Re: TokenMecabを指定してレコードを追加するとSEGVが発生する" on Tue, 20 Oct 2009 02:22:29 +0900,
>   morit****@razil***** wrote:
> 
> > 以前、mecabを使うとatexit()まわりで問題が出るため、
> > 回避策としてrb_set_end_proc()を使用するようにしていただいたと思います。
> 
> はい、そうです。
> 
> > ところが、apache + mod_rubyを使用した場合、
> > スクリプトを実行する度にrb_set_end_proc()で指定した関数が呼ばれるため、
> > 同一プロセスでgrn_fin()が何度も呼ばれることになり、
> > 結果として2度目にスクリプトが実行されるタイミングで、
> > segvで落ちてしまうことが判明しました。
> 
> たしかにそうですね。確認しました。
> むぅ。
> 
> > できればmod_rubyを使ってwebアプリケーションを書きたいのですが、
> > 何か良い回避策はないでしょうか。。?
> 
> trunkに回避策を入れました!
> 
> rb_set_end_proc()ではなく、ObjectSpace.define_finalizerを使
> うようにしています。Cからdefine_finalizerを使うAPIが用意され
> ていないので使いたくないなぁと思っていたのですが、mod_rubyだ
> と問題があることがわかったので、define_finalizerを使うように
> しました。
> -- 
> 須藤 功平 <kou****@clear*****>
> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)
> 
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
> 
--
morita




groonga-dev メーリングリストの案内
Back to archive index