morit****@razil*****
morit****@razil*****
2009年 10月 20日 (火) 02:22:29 JST
森です。 ruby-groongaについて相談です。 以前、mecabを使うとatexit()まわりで問題が出るため、 回避策としてrb_set_end_proc()を使用するようにしていただいたと思います。 ところが、apache + mod_rubyを使用した場合、 スクリプトを実行する度にrb_set_end_proc()で指定した関数が呼ばれるため、 同一プロセスでgrn_fin()が何度も呼ばれることになり、 結果として2度目にスクリプトが実行されるタイミングで、 segvで落ちてしまうことが判明しました。 以下それぞれのバージョンです。 Apache/2.2.9 Ruby/1.8.7(2008-08-11) mod_ruby/1.2.6 できればmod_rubyを使ってwebアプリケーションを書きたいのですが、 何か良い回避策はないでしょうか。。? どうぞよろしくお願いいたします。 >>> morit****@razil***** さんは書きました: > 森です。 > > >>> Kouhei Sutou さんは書きました: > > 須藤です。 > > > > In <a3699****@mail*****> > > "[groonga-dev,00205] TokenMecabを指定してレコードを追加するとSEGVが発生する" on Tue, 22 Sep 2009 16:16:17 +0900, > > SHIDARA Yoji <dara****@shida*****> wrote: > > > > > TokenMecabを使っている状態でレコードを追加すると > > > SEGVが発生するようです。 > > > > 原因は森さんの言うとおりです。 > > atexit()よりもう少し前にMeCabをきれいにするようにしてみまし > > た。 > > > > ログにも > > grn_fin (0) > > と出ているので大丈夫じゃないかと思います。 > > ありがとうございます!! > > > ただ、grn_gctxを使っちゃうんですよね。。。 > > やっぱり、使っちゃまずいですか? > 森さん > > 了解です。当面はgrn_gctxを使うしかないですよね。。 > > openされているctxのリストを取得するような良いAPIが作れれば良いのですが、 > すっきりした仕様がなかなか思いつかないんですよね。。 > > > -- > > 須藤 功平 <kou****@clear*****> > > 株式会社クリアコード (http://www.clear-code.com/) > > > > _______________________________________________ > > groonga-dev mailing list > > groon****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev > > > -- > morita > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev > -- morita