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