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

Back to archive index

SHIDARA Yoji dara****@shida*****
2009年 9月 14日 (月) 23:42:12 JST


しだらです。

度々すみません。
条件が特定できていない状態で恐縮なのですが、
以下のようなコードで SEGV するようです。
groonga commit 09bac5da6afc413b6909c3f659f256e94854efa9
ruby/groonga r664
で試しています。


#!/usr/bin/env ruby
$KCODE='u'
require 'groonga'

Groonga::Database.create(:path => 'db/groonga')
Groonga::Schema.define do |schema|
  schema.create_table("data", :type => :hash) do |table|
    table.text("text")
    table.time("time")
  end
  schema.create_table("terms",
                      :type => :patricia_trie,
                      :key_normalize => true,
                      :default_tokenizer => "TokenBigram") do |table|
    table.index("data.text")
                      end
end

data = Groonga::Context.default['data']
data.add('1', :text => "test one two", :time => 0)

1000.times do |i|
  results = data.select { |r| r['text'].match 'test' }
  results.sort([["time", "descending"]])
  results.each do |record|
    [record.key.key, record['text']]
  end
end


gdbから実行した結果は以下の通りでした(お役にたてばよいのですが、、、):

dara @ buzztter:~/groonga_test$ gdb --args ruby -v groonga_segvtest.rb
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
(no debugging symbols found)
(gdb) r
Starting program: /usr/bin/ruby -v groonga_segvtest.rb
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
[New Thread 0x7f5eb2d0b6e0 (LWP 31279)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f5eb2d0b6e0 (LWP 31279)]
0x00007f5eb1c40dcc in ?? () from /lib/libc.so.6
(gdb) bt
#0  0x00007f5eb1c40dcc in ?? () from /lib/libc.so.6
#1  0x00007f5eb1c42a78 in malloc () from /lib/libc.so.6
#2  0x00007f5eb16d75e9 in grn_malloc_default (ctx=0x7f5eb19acee0, size=136,
    file=0x7f5eb1798de3 "hash.c", line=1494, func=0x7f5eb17991d0
"grn_hash_cursor_open")
    at ctx.c:1288
#3  0x00007f5eb16e71fd in grn_hash_cursor_open (ctx=0x7f5eb19acee0,
hash=0x7b5a30, min=0x0,
    min_size=0, max=0x0, max_size=0, offset=0, limit=0, flags=0) at hash.c:1494
#4  0x00007f5eb16d3213 in grn_ctx_fin (ctx=0x7f5eb19acee0) at ctx.c:402
#5  0x00007f5eb16d3c3b in grn_fin () at ctx.c:586
#6  0x00007f5eb1bff9cd in exit () from /lib/libc.so.6
#7  0x00007f5eb283d220 in ruby_stop () from /usr/lib/libruby1.8.so.1.8
#8  0x00007f5eb2844711 in ruby_run () from /usr/lib/libruby1.8.so.1.8
#9  0x00000000004008b3 in main ()
(gdb)

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




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