[groonga-dev,00187] Re: 検索を行うとSEGVする(ことがある)

Zurück zum Archiv-Index

SHIDARA Yoji dara****@shida*****
2009年 9月 15日 (火) 03:24:34 JST


daraです。

> Groonga::Contextが完了した(grn_ctx_fin)後に、
> そこから払い出されたobjectがclose(grn_obj_close)されているために、
> free済みのメモリ領域が破壊されているようです。
>
> この事象がいつもrubyが終了するタイミングで出るのであれば、
> それが原因かも知れません。
>
> うーん。。

何かのお役に立てるかわからないのですが、
> 1000.times do |i|
の直後に
  p i
を挿入してどこまで回るかを見てみました。
この場合、606までで死んでしまうことが多いようです(たまに完走することもあります)。
#606で固まってしまい、SIGTERMを送っても止まらないこともありました。
以下は、gdbで606までで死んでしまった場合です:

(中略)
603
604
605
606

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f69597366e0 (LWP 7003)]
0x00007f69580bbd86 in grn_ra_ref (ctx=0x1d76480, ra=0x1dee0f0, id=1)
at store.c:126
126	  return (void *)(((byte *)p) + ((id & ra->element_mask) *
ra->header->element_size));
(gdb) bt
#0  0x00007f69580bbd86 in grn_ra_ref (ctx=0x1d76480, ra=0x1dee0f0,
id=1) at store.c:126
#1  0x00007f695812ed58 in grn_obj_get_value_ (ctx=0x1d76480,
obj=0x1dee0f0, id=1,
    size=0x7fff617415b4) at db.c:3939
#2  0x00007f695812ca37 in grn_accessor_get_value_ (ctx=0x1d76480,
a=0x54640a0, id=1,
    size=0x7fff617415b4) at db.c:3477
#3  0x00007f695812ec53 in grn_obj_get_value_ (ctx=0x1d76480,
obj=0x54640d0, id=1,
    size=0x7fff617415b4) at db.c:3917
#4  0x00007f6958136636 in pack (ctx=0x1d76480, table=0x545d1b0,
head=0x1d37ad0, tail=0x1d37ad0,
    keys=0x7fff61741830, n_keys=1) at db.c:5459
#5  0x00007f69581377f1 in grn_table_sort (ctx=0x1d76480,
table=0x545d1b0, offset=0, limit=1,
    result=0x1d6eef0, keys=0x7fff61741830, n_keys=1) at db.c:5702
#6  0x00007f69583ee05e in rb_grn_table_sort (argc=<value optimized out>,
    argv=<value optimized out>, self=140090448633040)
    at /home/dara/local/src/ruby-groonga/ext/rb-grn-table.c:890
#7  0x00007f69592626c2 in ?? () from /usr/lib/libruby1.8.so.1.8
#8  0x00007f695926282a in ?? () from /usr/lib/libruby1.8.so.1.8
#9  0x00007f695925c7e0 in ?? () from /usr/lib/libruby1.8.so.1.8
#10 0x00007f69592609bb in ?? () from /usr/lib/libruby1.8.so.1.8
#11 0x00007f6959289bd1 in ?? () from /usr/lib/libruby1.8.so.1.8
#12 0x00007f69592626c2 in ?? () from /usr/lib/libruby1.8.so.1.8
#13 0x00007f695926282a in ?? () from /usr/lib/libruby1.8.so.1.8
#14 0x00007f695925c7e0 in ?? () from /usr/lib/libruby1.8.so.1.8
#15 0x00007f695925ff80 in ?? () from /usr/lib/libruby1.8.so.1.8
#16 0x00007f695926f67b in ?? () from /usr/lib/libruby1.8.so.1.8
#17 0x00007f695926f6c5 in ruby_exec () from /usr/lib/libruby1.8.so.1.8
#18 0x00007f695926f6f2 in ruby_run () from /usr/lib/libruby1.8.so.1.8
#19 0x00000000004008b3 in main ()

-- 
SHIDARA Yoji
本を書きました! http://www.amazon.co.jp/dp/4798119881




groonga-dev メーリングリストの案内
Zurück zum Archiv-Index