[groonga-dev,03721] Re: groonga検索時にrc=-35のエラーが発生する

Back to archive index

Hiroyuki Sato hiroy****@gmail*****
2015年 12月 7日 (月) 18:19:06 JST


矢田様

佐藤です。
お世話になっております。

2015年12月7日(月) 18:00 Susumu Yata <yata****@razil*****>:

> 矢田です.
>
> ご報告ありがとうございます.
>
> エラーメッセージを参考にソースコードを辿ってみたところ, OR の個数が原因のようです.
>
> [[-35,1449474361.23027,0.00206923484802246,"stack is
> full",[["grn_expr_append_obj","expr.c",751]]],[]]
>
> 検索条件を構成する要素が多すぎるために,固定サイズの領域が埋まってしまったようです.
>

やはり個数ですか、、、
ORの個数こんなに増えて大丈夫かな???とは思っていました。



> // expr.c
> if (e->codes_curr >= e->codes_size) {
>   ERR(GRN_NO_MEMORY_AVAILABLE, "stack is full");
>   goto exit;
> }
>
> // expr.c
> int size = GRN_STACK_SIZE;
> ...
> expr->codes_size = size;
>
> // config.h
> /* stack size */
> #define GRN_STACK_SIZE 1024
>
> 一応,この値はビルド時に指定できるみたいです.
> コミットメッセージには "This is DANGER parameter!!!" と書かれていますが….
>

しかしさすがに1024は使っていないように思うのですが、
ユーザが利用可能な数は、いくつになるかおわかりでしょうか?

さすがにDANGERとかいてあるパラメータを変更するのは
気が引けますね。

倍あれば当面こまらなそうなんですが、、
なにか別の検索方法を探る必要がありますね。

ありがとうございました。



>
> - Make GRN_STACK_SIZE customizable on build · groonga/groonga @ 1162623
>  -
> https://github.com/groonga/groonga/commit/116262374751a91318c4815e9a293aeeaf98cfbb
>
> 2015年12月7日 16:52 Hiroyuki Sato <hiroy****@gmail*****>:
> > 手動でコマンドを実行したら
> >
> > [[-35,1449474361.23027,0.00206923484802246,"stack is
> > full",[["grn_expr_append_obj","expr.c",751]]],[]]
> >
> > となりました。
> > ORの個数?、クエリの長さ?を減らすと大丈夫なようです。
> >
> > よろしくお願いします。
> >
> >
> >
> > 2015年12月7日(月) 16:19 Hiroyuki Sato <hiroy****@gmail*****>:
> >>
> >> 佐藤です。
> >>
> >> 質問です。
> >>
> >> 1, rc=-35のエラー
> >>
> >> groongaで検索をしていて次のエラーが発生しました。
> >>
> >>   2015-12-07 15:26:13.929059|0x7fee80d71d10|:000000000834456 select(0)
> >>   2015-12-07 15:26:13.929103|0x7fee80d71d10|<000000000878385 rc=-35
> >>
> >> rc=-35とは、メモリ不足だと思うのですが、
> >> なにか設定でこの容量を増やすことはできますでしょうか?
> >>
> >> include/groonga/groonga.h
> >>   GRN_NO_MEMORY_AVAILABLE = -35,
> >>
> >> 2, やっていることは
> >>
> >>   https://github.com/hiroyuki-sato/groonga-highlight_test#クエリ
> >>   とほぼ同じです。ただし、ORの数が252個ぐらいあります。
> >>
> >>   select \
> >>     --table Data \
> >>     --match_columns article \
> >>     --output_columns "_key,highlight_html(article),line_no" \
> >>     --query "( あいこ OR あかり OR ありま OR いつお OR うらら OR かおり OR かとう OR かなえ OR
> かなめ
> >> OR きよこ OR きよみ OR こずえ OR しげこ OR すずき  OR せいこ OR せんだ OR たいじ OR たけお OR たまえ
> OR
> >> ちゃん OR ちょこ OR とよこ OR ながの OR のぼる OR のむら OR まこと OR みどり OR みやこ OR みゆき OR
> よしの OR
> >> よしみ OR 健次郎 OR 利根川 OR 千々石 OR 千鶴子 OR 大久保 OR 大河原 OR 威海衛 OR 宇都宮 OR 小石川 OR
> 江田島 OR
> >> 海江田 OR 西久保 OR 高千穂 OR こうへい OR こうめい ) OR (line_no:>1 + line_no:<500)" \
> >>     --command_version 2 \
> >>     --limit -1
> >>
> >> 3, 環境
> >>   OS: Scientific Linux 6 64bit
> >> groonga: 5.0.8です。(正確にはhighlight_html修正済みの5.0.7-2)
> >>
> >>   vm.overcommit_memroyは1にしてあります。
> >>   DBの格納されているサイズは280MBぐらいでそれほど容量が大きいわけではありません。
> >>
> >>   ファイルは32個ぐらいしか開いておらずファイルディスクリプタが足りないということ
> >>   もないようです。
> >>
> >> よろしくお願いします。
> >>
> >>
> >>
> >>
> >
> >
> > _______________________________________________
> > groonga-dev mailing list
> > groon****@lists*****
> > http://lists.osdn.me/mailman/listinfo/groonga-dev
> >
>
>
>
> --
> Susumu Yata <yata****@razil*****>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.osdn.me/mailman/listinfo/groonga-dev
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
下载 



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