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