Naoya Murakami
visio****@gmail*****
2013年 9月 24日 (火) 06:58:49 JST
お世話になっております。村上です。 mecabトークナイザーのtoo long sentenceを回避するために、所定バイト数で分割し、 且つ、文章の区切りとなる文字まで戻して、mecab_sparse_to_str2に渡すように トークナイザをいじりました。 https://github.com/naoa/groonga-tokenizer-customized/blob/master/tokenizers/mecabfilter.c しかしながら、以下のような、corrupted double-linked listのメッセージがでて、 mysqldがクラッシュして、インデックス構築ができませんでした。。。 ソースをちょこちょこいじりましたが、3回まったく同じタイミングで再現しました。 また、インデックスに失敗したカラムを10分割にしてやってみると、 以下のメッセージはでず、インデックス構築に成功しました。 今、ご調査していただいているやつと、似たような状況なんでしょうかね。。。? freeの処理が失敗??freeが重なりすぎている??よくわかりません。 http://d.hatena.ne.jp/msr_humpy/20120501/1335847763 それか、結構適当に無理やり分割処理しているので、そこがだめなのかよくわかりません。 でも、オリジナルのmecabトークナイザだと、too long sentenceでインデックス構築 できないという。。 またまた、困りました。。。 ご調査していただいている件の解決を期待しつつ、とりあえずは、 以下のメッセージがでないラインをさがしてみようかなぁと思ってます。 2013-09-24 06:23:10.361836|n|e85b7700|flushing:452 npostings:16731998 2013-09-24 06:23:10.582497|n|e85b7700|flushed: 452 encsize:26620463 *** glibc detected *** /usr/local/mysql/bin/mysqld: corrupted double-linked list: 0x00007f80b864e610 *** ======= Backtrace: ========= /lib64/libc.so.6[0x37f36760e6] /lib64/libc.so.6[0x37f3678f01] /usr/lib64/libgroonga.so.0(grn_free_default+0x31)[0x7f8d17966fd1] /usr/lib64/libgroonga.so.0(grn_string_close+0x3b)[0x7f8d17b019bb] /usr/lib64/libgroonga.so.0(grn_obj_close+0x360)[0x7f8d17977710] /usr/lib64/libgroonga.so.0(grn_tokenizer_query_close+0x1e)[0x7f8d17b046de] /usr/lib64/groonga/plugins/tokenizers/mecabfilter.so(+0x1666)[0x7f821b9f4666] /usr/lib64/libgroonga.so.0(grn_token_close+0x31)[0x7f8d17b035b1] /usr/lib64/libgroonga.so.0(+0x116add)[0x7f8d17a55add] /usr/lib64/libgroonga.so.0(grn_ii_build+0x64e)[0x7f8d17a70f1e] /usr/lib64/libgroonga.so.0(grn_obj_set_info+0xaec)[0x7f8d1799bcac] /usr/local/mysql/lib/plugin/ha_mroonga.so(_ZN10ha_mroonga20storage_create_indexEP5TABLEPKcP8_grn_objP16st_mroonga_shareP6st_keyPS5_SA_j+0x476)[0x7f8d17d98036] /usr/local/mysql/lib/plugin/ha_mroonga.so(_ZN10ha_mroonga22storage_enable_indexesEj+0x274)[0x7f8d17da2c34] /usr/local/mysql/bin/mysqld(_Z17mysql_alter_tableP3THDPcS1_P24st_ha_create_informationP10TABLE_LISTP10Alter_infojP8st_orderb+0x2164)[0x726b64] /usr/local/mysql/bin/mysqld(_ZN19Sql_cmd_alter_table7executeEP3THD+0x43c)[0x81a9cc] /usr/local/mysql/bin/mysqld(_Z21mysql_execute_commandP3THD+0x1a24)[0x6d3824] /usr/local/mysql/bin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x4c7)[0x6d6d47] /usr/local/mysql/bin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x189c)[0x6d86dc] /usr/local/mysql/bin/mysqld(_Z24do_handle_one_connectionP3THD+0x10d)[0x6a0b2d] /usr/local/mysql/bin/mysqld(handle_one_connection+0x42)[0x6a0c62] /usr/local/mysql/bin/mysqld(pfs_spawn_thread+0x127)[0xae9357] /lib64/libpthread.so.0[0x37f3a07851] /lib64/libc.so.6(clone+0x6d)[0x37f36e890d] >おぉ!独自ノーマライザー! >11/29のgroonga勉強会でなにか話してみませんか!? > http://atnd.org/events/43461 >groonga/mroongaを使い込んでいる系の話もあるといいなぁと思っ >ていたのです! いろいろお世話になっておりますし、お手伝いできればいいなとは思っていますが、 以下の理由からちょっと厳しそうです。 11月29日までに何とか目処がついて、そのときにまだ空きがあれば、 またご相談ということでいいですかね? 1.関西在住 2.groongaは本職では使っておらず、そもそも本職はシステムにまったく関係ない職業 3.インデックス構築に失敗していて、そもそも使い込めておらず、まだ紹介できるような状態にない 以上、よろしくお願いします。