[groonga-dev,01730] Re: 仮想メモリサイズを超えるmroongaのインデックス構築について

Back to archive index

Naoya Murakami visio****@gmail*****
2013年 8月 30日 (金) 08:15:19 JST


お世話になっております。村上です。

本日のgdbのバックトレースを取得しました。
今回もセグメンテーションフォルトで前回と同じ内容に見えます。

なお、ii.cはきちんとパッチされていました。
   1760       if (dv[0].data) {
   1761         GRN_FREE(dv[0].data);
   1762         dv[0].data = NULL;
   1763       }

   1789       if (dv[0].data) {
   1790         GRN_FREE(dv[0].data);
   1791         dv[0].data = NULL;
   1792       }

時間が間に合わなそうだったので、今回もデバッグビルド
(--enable-debug)になっていません。すいません。
これでも、解析できそうでしょうか?

前回と同様、ターミナルログとgroonga.logをアップロードしました。
また、3秒おきにロギングしておいたvmstatのログについても合わせて、
アップロードしました。よければ、ご参照ください。
いままでの内容とほとんど同じようですが。。

・ターミナルログ
https://docs.google.com/file/d/0B7YROOOhfA8QZG5iaVNkd01XeTQ/edit?usp=sharing

・groonga.log
https://docs.google.com/file/d/0B7YROOOhfA8QQjBGRWh5ZkU3RFE/edit?usp=sharing

・vmstat
https://docs.google.com/file/d/0B7YROOOhfA8Qc1c5TWR5ejZYaGM/edit?usp=sharing


<gdbのバックトレース出力結果>
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff41b0700 (LWP 2953)]
0x000000318bc78962 in _int_free () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install
glibc-2.12-1.107.el6.x86_64 libgcc-4.4.7-3.el6.x86_64
libstdc++-4.4.7-3.el6.x86_64 nss-softokn-freebl-3.12.9-11.el6.x86_64
zlib-1.2.3-29.el6.x86_64
(gdb) thread apply all backtrace full

Thread 24 (Thread 0x7ffff41b0700 (LWP 2953)):
#0  0x000000318bc78962 in _int_free () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007ffff6b868f1 in grn_free_default (ctx=0x7ffe88026930,
ptr=0x7fa51dfc9010, file=0x7ffff6d44550 "ii.c",
    line=1482, func=<value optimized out>) at ctx.c:2603
        __FUNCTION__ = "grn_free_default"
#2  0x00007ffff6c700d4 in datavec_reset (ctx=0x7ffe88026930,
dv=0x7ffe32d47dd8, dvlen=4, unitsize=18884272,
    totalsize=<value optimized out>) at ii.c:1482
        i = <value optimized out>
        __FUNCTION__ = "datavec_reset"
#3  0x00007ffff6c8de47 in merge_hit_blocks (ctx=0x7ffe88026930,
ii_buffer=0x7ffe32d46d60, tid=291,
    hits=0x7ffe33880d30, nhits=5313) at ii.c:7006
        nrecs = <value optimized out>
        max_size = 2222285475
        flags = 33410
        i = <value optimized out>
        nposts = <value optimized out>
#4  grn_ii_buffer_merge (ctx=0x7ffe88026930, ii_buffer=0x7ffe32d46d60,
tid=291, hits=0x7ffe33880d30, nhits=5313)
    at ii.c:7158
        max_size = 847505600
---Type <return> to continue, or q <return> to quit---
        __FUNCTION__ = "grn_ii_buffer_merge"
#5  0x00007ffff6c8fe30 in grn_ii_buffer_commit (ctx=0x7ffe88026930,
ii_buffer=0x7ffe32d46d60) at ii.c:7356
        nrests = 5313
        nhits = <value optimized out>
        i = <value optimized out>
        tid = <value optimized out>
        tc = 0x7ffe3388b340
        hits = 0x7ffe33880d30
        __FUNCTION__ = "grn_ii_buffer_commit"
#6  0x00007ffff6c906f5 in grn_ii_build (ctx=0x7ffe88026930, ii=<value
optimized out>,
    sparsity=<value optimized out>) at ii.c:7487
        target = <value optimized out>
        i = <value optimized out>
        ncols = 6
        cols = <value optimized out>
        s = <value optimized out>
        ii_buffer = <value optimized out>
        __FUNCTION__ = "grn_ii_build"
#7  0x00007ffff6bbb18c in build_index (ctx=0x7ffe88026930, obj=<value
optimized out>,
    type=<value optimized out>, value=<value optimized out>) at db.c:5966
        sparsity = <value optimized out>
---Type <return> to continue, or q <return> to quit---
        i = <value optimized out>
        ncol = 6
        flags = 49153
        ii = <value optimized out>
        use_grn_ii_build = 1 '\001'
        s = <value optimized out>
        src = <value optimized out>
        cp = <value optimized out>
        col = 0x7ffe32d46d20
        target = <value optimized out>
#8  grn_obj_set_info_source_update (ctx=0x7ffe88026930, obj=<value
optimized out>, type=<value optimized out>,
    value=<value optimized out>) at db.c:6330
        v2 = <value optimized out>
        v = <value optimized out>
        s = <value optimized out>
#9  grn_obj_set_info_source (ctx=0x7ffe88026930, obj=<value optimized out>,
type=<value optimized out>,
    value=<value optimized out>) at db.c:6350
        rc = GRN_SUCCESS
#10 grn_obj_set_info (ctx=0x7ffe88026930, obj=<value optimized out>,
type=<value optimized out>,
    value=<value optimized out>) at db.c:6374
        rc = GRN_INVALID_ARGUMENT
---Type <return> to continue, or q <return> to quit---
        __FUNCTION__ = "grn_obj_set_info"
#11 0x00007ffeca1a2f29 in ha_mroonga::storage_create_index
(this=0x7ffe880257e0, table=0x7ffff41a7afc,
    grn_table_name=0x7ffe8834bb00 "1", grn_table=<value optimized out>,
tmp_share=0x7ffe3283e8c0,
    key_info=0x7ffe880438f0, index_tables=0x7ffff41a7cf0,
index_columns=0x7ffff41a7b60, i=37)
    at ha_mroonga.cpp:3447
        source_ids = {header = {type = 4 '\004', impl_flags = 0 '\000',
flags = 24, domain = 9}, u = {b = {
              head = 0x15300000152 <Address 0x15300000152 out of bounds>,
              curr = 0x15500000154 <Address 0x15500000154 out of bounds>,
              tail = 0x15700000156 <Address 0x15700000156 out of bounds>},
v = {body = 0x15300000152,
              sections = 0x15500000154, n_sections = 342}}}
        j = <value optimized out>
        n_key_parts = 6
        index_table = 0x7ffe00000006
        column_name_size = -199591216
        index_column_name = <value optimized out>
        error = <value optimized out>
        index_column = 0x7ffe3283e8c0
        column_name = <value optimized out>
        is_multiple_column_index = false
        index_column_flags = <value optimized out>
#12 0x00007ffeca1adc34 in ha_mroonga::storage_enable_indexes
(this=0x7ffe880257e0, mode=<value optimized out>)
---Type <return> to continue, or q <return> to quit---
    at ha_mroonga.cpp:12087
        i = <value optimized out>
        key_info = 0x7ffe880428c0
        mapper = {static default_path_prefix = 0x0, mysql_path_ =
0x7ffe880445d0 "./uspat_ftext/ftext",
          path_prefix_ = 0x0,
          db_path_ = '\000' <repeats 512 times>, "ftext", '\000' <repeats
1339 times>, "/usr/lib64/groonga/plugins/tokenizers/delimitsemicolon.so",
'\000' <repeats 543 times>"\214, \356@\213\061", '\000' <repeats 11
times>"\325, ?\000\214\061\000\000\000X\326\377\367\377\177\000\000B\202@\213\061",
'\000' <repeats 11 times>"\214, \356@\213\061", '\000' <repeats 11
times>"\241, \024\200\214\061\000\000\000
\333\377\367\377\177\000\000\354\\\301\213\061\000\000\000\000\000\000\000\001\000\000\000\214\356@\213",
'\000' <repeats 12 times>,
"i\b\200\213\061\000\000\000\310\024\377\367\377\177\000\000h\342\377\367\377\177\000\000\000\000\000\000\001\000\000\000\214\356@\213",
'\000' <repeats 12 times>...,
          db_name_ =
"p\262\064\210\376\177\000\000\200\270\064\210\376\177\000\000\320e\316m\000\000\000\000:\236@\213\061",
'\000' <repeats 11 times>"\200,
\270\064\210\376\177\000\000\001\000\000\000\376\177", '\000' <repeats 14
times>"\376,
\177\000\000p\262\064\210\376\177\000\000\340\216\032\364\377\177\000\000\360\221\032\364\377\177\000\000x\221;\216\376\177\000\000\225\311@\213\061",
'\000' <repeats 11 times>,
"?4\210\376\177\000\000\340\217\032\364\377\177\000\000\360\221\032\364\377\177\000\000\370\217\032\364\377\177\000\000\225\311@
\213\000\000\000\000\001\000\000\000fc\273\315\346\204\033\216\376\177\000\000@\217\032\364\377\177\000\000\360\221\032\364\377\177\000\000\005\000\000\000\376\177\000\000\001",
'\000' <repeats 15 times>, "p", '\000' <repeats 31 times>,
"\005\000\000\000\061\000\000\000[\000\000\000|\000\000\000w\000\000\000n\000\000\000\b\345\300\213\061\000\000\000\220\t\377\367\377\177\000\000p\005\000\000\000\000\000\000\377\377\377\377\000\000\000\000H\000\000\000\000\000\---Type
<return> to continue, or q <return> to quit---
000\000"...,
          table_name_ = '\000' <repeats 256 times>, "ftext", '\000'
<repeats 515 times>,
"@\267\032\364\377\177\000\000\020\301V\002\000\000\000\000D\353\000\210\376\177\000\000\070\353\000\210\376\177\000\000\000\064\002\210\376\177\000\000\000\273\032\364\377\177\000\000\301*s\000\000\000\000\000?\032\364\377\177",
'\000' <repeats 202 times>"\330, \331V\002", '\000' <repeats 420 times>,
"@\213\270\366\377\177", '\000' <repeats 26 times>,
"h4?\376\177\000\000\027\000\000\000\000\000\000\000\220\177c\213\376\177\000\000\070\a\226\272\000\000\000\000\027\000\000\000\000\000\000\000\340\b0\212\376\177\000\000\252T\306\366\377\177\000\000\000\000\000\000\000\000\000\000k\243?1",
'\000' <repeats 11 times>,
"`\250\000\000\000\000\000\000\200\230\000\000\000\000\000\000\260\354%\002\000\000\000\000\330!?\376\177\000\000W",
'\000' <repeats 15 times>...,
          mysql_table_name_ =
"\000\000\000\000$\000\000\000$\000\000\000\000\000\000\000./uspat_ftext/",
'\000' <repeats 498 times>, "/var/lib/mysql/uspat_ftext/ftext.frm", '\000'
<repeats 164 times>, "k\243?1", '\000' <repeats 11 times>"\200,
\301\000\000\000\000\000\000\020\277\000\000\000\000\000\000\000\260\004\000\000\000\000\000\377\017\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\360\003\000\000\000\000\000\260\301",
'\000' <repeats 14 times>,
"\001\000\000\000\000\000\000\000\f\000\000\000\000\000\000\000\031\f\000\000\066\003\000\000\273\000\000\000|\000\000\000`\264\032\364\377\177\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\300"...}
        index_tables = 0x7ffff41a7cf0
        skip_unique_key = true
        error = <value optimized out>
        n_keys = 47
        index_columns = 0x7ffff41a7b60
---Type <return> to continue, or q <return> to quit---
        have_multiple_column_index = <value optimized out>
#13 0x00000000007232c4 in mysql_alter_table(THD*, char*, char*,
st_ha_create_information*, TABLE_LIST*, Alter_info*, unsigned int,
st_order*, bool) ()
No symbol table info available.
#14 0x00000000008161ec in Sql_cmd_alter_table::execute(THD*) ()
No symbol table info available.
#15 0x00000000006d1331 in mysql_execute_command(THD*) ()
No symbol table info available.
#16 0x00000000006d4637 in mysql_parse(THD*, char*, unsigned int,
Parser_state*) ()
No symbol table info available.
#17 0x00000000006d5894 in dispatch_command(enum_server_command, THD*,
char*, unsigned int) ()
No symbol table info available.
#18 0x000000000069e9cd in do_handle_one_connection(THD*) ()
No symbol table info available.
#19 0x000000000069eb02 in handle_one_connection ()
No symbol table info available.
#20 0x000000000091d527 in pfs_spawn_thread ()
No symbol table info available.
#21 0x000000318c007851 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#22 0x000000318bce890d in clone () from /lib64/libc.so.6
---Type <return> to continue, or q <return> to quit---
No symbol table info available.

Thread 23 (Thread 0x7ffff41f1700 (LWP 2928)):
#0  0x000000318c00f2a5 in sigwait () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x000000000057c443 in signal_hand ()
No symbol table info available.
#2  0x000000000091d527 in pfs_spawn_thread ()
No symbol table info available.
#3  0x000000318c007851 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#4  0x000000318bce890d in clone () from /lib64/libc.so.6
No symbol table info available.
・・・

以上、よろしくお願いします。



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