[groonga-dev,01413] Re: mariadbでmroongaがクラッシュしてしまう現象について

Back to archive index

WING☆ wings****@wing-*****
2013年 5月 21日 (火) 00:07:41 JST


WING☆です。

あれから、cmakeのオプションを絞ってビルドした結果、
うまくCREATE TABLEが実行することを確認できました。

元々のcmakeは以下(NG)
---
cmake . -DBUILD_CONFIG=mysql_release \
       -DFEATURE_SET="community" \
       -DINSTALL_LAYOUT=RPM \
       -DCMAKE_INSTALL_PREFIX="%{_prefix}" \
       -DINSTALL_INCLUDEDIR=include/mysql \
       -DINSTALL_INFODIR=share/info \
       -DINSTALL_LIBDIR="%{_lib}/mysql" \
       -DINSTALL_MANDIR=share/man \
       -DINSTALL_MYSQLSHAREDIR=share/mysql \
       -DINSTALL_MYSQLTESTDIR=share/mysql-test \
       -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
       -DINSTALL_SBINDIR=libexec \
       -DINSTALL_SCRIPTDIR=bin \
       -DINSTALL_SQLBENCHDIR=share \
       -DINSTALL_SUPPORTFILESDIR=share/mysql \
       -DMYSQL_DATADIR="/var/lib/mysql" \
       -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \
       -DENABLED_LOCAL_INFILE=ON \
       -DENABLE_DTRACE=OFF \
       -DWITH_EMBEDDED_SERVER=ON \
       -DWITH_READLINE=ON \
       -DWITH_SSL=system \
       -DWITH_ZLIB=system \
       -DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
---

うまく動いたcmakeは以下(OK)
---
cmake . -DINSTALL_LAYOUT=RPM \
        -DCMAKE_INSTALL_PREFIX="%{_prefix}" \
        -DINSTALL_INCLUDEDIR=include/mysql \
        -DINSTALL_INFODIR=share/info \
        -DINSTALL_LIBDIR="%{_lib}/mysql" \
        -DINSTALL_MANDIR=share/man \
        -DINSTALL_MYSQLSHAREDIR=share/mysql \
        -DINSTALL_MYSQLTESTDIR=share/mysql-test \
        -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
        -DINSTALL_SBINDIR=libexec \
        -DINSTALL_SCRIPTDIR=bin \
        -DINSTALL_SQLBENCHDIR=share \
        -DINSTALL_SUPPORTFILESDIR=share/mysql \
        -DMYSQL_DATADIR="/var/lib/mysql" \
        -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock"
---

どうやら、
---
       -DENABLED_LOCAL_INFILE=ON \
       -DENABLE_DTRACE=OFF \
       -DWITH_EMBEDDED_SERVER=ON \
       -DWITH_READLINE=ON \
       -DWITH_SSL=system \
       -DWITH_ZLIB=system \
       -DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
---
のあたりが怪しいのですが、これは今後更に検証をして
みたいと思います。
(ひょっとしてお詳しい方なら、これで大凡の見当が付く?)

とりあえず取り急ぎ、ご報告まで。
また、いろいろご支援いただいた方々ありがとうございました。

最終的にどのオプションがダメだったのかは、今後結論が
出次第、報告したいと思います。

では、今後ともよろしくお願い致します。



(2013/05/20 18:12), WING☆ wrote:
> WING☆です。
> 
> 須藤様、yoku様、いろいろありがとうございます。。。
> 
>> MariaDBに渡しているCMakeのオプションをできるだけとってビルド
>> するとどうでしょうか?以下の4つくらいまで減らせないかなぁと
>> 思うのですが。。。
>>
>>     -DINSTALL_LAYOUT=RPM
>>     -DCMAKE_INSTALL_PREFIX="%{_prefix}"
>>     -DMYSQL_DATADIR="/var/lib/mysql"
>>     -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock"
> 
> そうですね。
> 一度試してみます。
> 
>> 投稿された最初のバックトレースを見る限り、mroongaは関係なく、
>> mroongaをINSTALL PLUGIN, CREATE FUNCTIONした時に変なことになって
>> mysql.pluginとmysql.funcが壊れたように見受けられますが。。
> 
> むぅ…
> 一度、いろいろと検証必要ですね…
> 
> また、試した結果等をお知らせしたいと思います。
> 
> 宜しくお願い致します。
> 
> 
> 
> (2013/05/20 17:34), yoku ts. wrote:
>> こんにちは、yokuといいます。
>>
>> 私が遭遇した状況と少し違うように見受けられます。
>>
>> 【package】
>> groonga-devel-3.0.3-1.el6_11.wing.i686
>> mariadb-libs-5.5.30-3.el6_2.wing.i686
>> groonga-plugin-suggest-3.0.3-1.el6_11.wing.i686
>> groonga-normalizer-mysql-1.0.3-1.el6_2.wing.i686
>> mariadb-devel-5.5.30-3.el6_2.wing.i686
>> groonga-libs-3.0.3-1.el6_11.wing.i686
>> mecab-0.996-1.el6_2.wing.i686
>> mysqlclient16-5.1.69-1.el6_3.wing.i686
>> mariadb-5.5.30-3.el6_2.wing.i686
>> mariadb-server-5.5.30-3.el6_2.wing.i686
>> groonga-3.0.3-1.el6_11.wing.i686
>> mariadb-mroonga-3.03-1.el6_13.wing.i686
>>
>>
>> 【ストレージモードでCREATE TABLE】
>> MariaDB [test]> create table t1 ( num int ) engine = mroonga;
>> ERROR 2013 (HY000): Lost connection to MySQL server during query
>>
>> 【バックトレース】
>> (gdb) bt
>> #0  0x00206416 in __kernel_vsyscall ()
>> #1  0x00212443 in pthread_kill () from /lib/libpthread.so.0
>> #2  0x00c5596b in my_write_core (sig=11) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/mysys/stacktrace.c:457
>> #3  0x0086d6fd in handle_fatal_signal (sig=11) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/sql/signal_handler.cc:262
>> #4  <signal handler called>
>> #5  0x05309703 in clear_error (this=0x929c98f8) at
>> /root/rpmbuild/BUILD/mroonga-3.03/../mariadb-5.5.30/sql/sql_class.h:2605
>> #6  ha_mroonga::create_share_for_create (this=0x929c98f8) at ha_mroonga.cpp:2728
>> #7  0x05309955 in ha_mroonga::table_flags (this=0x929c98f8) at
>> ha_mroonga.cpp:2571
>> #8  0x00871357 in init (share=0xb6cb2ec0, alloc=0xb6cb2ef8, db_type=0x93407c80)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/handler.h:1837
>> #9  get_new_handler (share=0xb6cb2ec0, alloc=0xb6cb2ef8, db_type=0x93407c80)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/handler.cc:256
>> #10 0x007c4d8e in open_binary_frm (thd=0x2ba5908, share=0xb6cb2ec0, db_flags=0)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/table.cc:1335
>> #11 open_table_def (thd=0x2ba5908, share=0xb6cb2ec0, db_flags=0) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/sql/table.cc:713
>> #12 0x008726c3 in ha_create_table (thd=0x2ba5908, path=0xb6cb3f3b
>> "./test/t1", db=0x9340e500 "test",
>>       table_name=0x9340e0c8 "t1", create_info=0xb6cb4668,
>> update_create_info=false)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/handler.cc:4041
>> #13 0x007cfbd4 in rea_create_table (thd=0x2ba5908, path=0xb6cb3f3b
>> "./test/t1", db=0x9340e500 "test",
>>       table_name=0x9340e0c8 "t1", create_info=0xb6cb4668,
>> create_fields=..., keys=0, key_info=0x9340f840, file=0x9340e7f0)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/unireg.cc:500
>> #14 0x0079d11b in mysql_create_table_no_lock (thd=0x2ba5908,
>> db=0x9340e500 "test", table_name=0x9340e0c8 "t1",
>>       create_info=0xb6cb4668, alter_info=0xb6cb4258,
>> internal_tmp_table=false, select_field_count=0, is_trans=0xb6cb419f)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_table.cc:4490
>> #15 0x0079def3 in mysql_create_table (thd=0x2ba5908,
>> create_table=0x9340e0f0, create_info=0xb6cb4668,
>> alter_info=0xb6cb4258)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_table.cc:4587
>> #16 0x0072d046 in mysql_execute_command (thd=0x2ba5908) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_parse.cc:2606
>> #17 0x0072d639 in mysql_parse (thd=0x2ba5908, rawbuf=0x9340e020
>> "create table t1 ( num int ) engine = mroonga", length=44,
>>       parser_state=0xb6cb4ffc) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_parse.cc:5756
>> #18 0x0072f058 in dispatch_command (command=COM_QUERY, thd=0x2ba5908,
>>       packet=0x2c19501 "create table t1 ( num int ) engine = mroonga",
>> packet_length=44)
>>       at /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_parse.cc:1068
>> #19 0x0072f826 in do_command (thd=0x2ba5908) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_parse.cc:794
>> #20 0x007e7605 in do_handle_one_connection (thd_arg=0x2ba5908) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_connect.cc:1266
>> #21 0x007e7760 in handle_one_connection (arg=0x2ba5908) at
>> /root/rpmbuild/BUILD/mariadb-5.5.30/sql/sql_connect.cc:1181
>> #22 0x0020da49 in start_thread () from /lib/libpthread.so.0
>> #23 0x05d77aee in clone () from /lib/libc.so.6
>>
>> ステップ実行で様子を見てみたところ、
>> ha_mroonga::create_share_for_createからmrn_parse_table_paramを呼んでいるところでエラーになり、
>>
>>    2705   if ((error = mrn_parse_table_param(&share_for_create,
>> &table_for_create)))
>>    2706     goto error;
>> ..
>>    2721 error:
>>    2722   if (share_for_create.wrapper_mode) {
>>    2723     plugin_unlock(NULL, share_for_create.plugin);
>>    2724   }
>>    2725   mrn_free_share_alloc(&share_for_create);
>>    2726   free_root(&mem_root_for_create, MYF(0));
>>    2727   analyzed_for_create = false;
>>    2728   thd->clear_error();
>>    2729   DBUG_RETURN(error);
>>    2730 }
>>
>> thd->clear_error()でsegfaultしました。
>> *.mrnファイルは作成されておらず、test/t1.frmだけが取り残されている感じです。
>>
>> # ll /var/lib/mysql/
>> total 89736
>> -rw-rw---- 1 mysql mysql     16384 May 20 17:02 aria_log.00000001
>> -rw-rw---- 1 mysql mysql        52 May 20 17:02 aria_log_control
>> -rw------- 1 mysql mysql 641757184 May 20 17:05 core.2042
>> -rw-rw---- 1 mysql mysql      6175 May 20 17:05 error.log
>> -rw-rw---- 1 mysql mysql       240 May 20 17:05 groonga.log
>> -rw-rw---- 1 mysql mysql  18874368 May 20 17:04 ibdata1
>> -rw-rw---- 1 mysql mysql   5242880 May 20 17:05 ib_logfile0
>> -rw-rw---- 1 mysql mysql   5242880 May 20 17:03 ib_logfile1
>> drwx------ 2 mysql root       4096 May 20 17:02 mysql
>> srwxrwxrwx 1 mysql mysql         0 May 20 17:05 mysql.sock
>> drwx------ 2 mysql mysql      4096 May 20 17:02 performance_schema
>> drwx------ 2 mysql root       4096 May 20 17:05 test
>>
>> # ll /var/lib/mysql/test
>> total 12
>> -rw-rw---- 1 mysql mysql 8558 May 20 17:05 t1.frm
>>
>>
>>> WING☆さん
>> 投稿された最初のバックトレースを見る限り、mroongaは関係なく、
>> mroongaをINSTALL PLUGIN, CREATE FUNCTIONした時に変なことになって
>> mysql.pluginとmysql.funcが壊れたように見受けられますが。。
>>
>>
>> yoku ts.
>>
>>
>> 2013年5月20日 16:33 Kouhei Sutou <kou****@clear*****>:
>>> 須藤です。
>>>
>>> In <5199A****@wing-*****>
>>>     "[groonga-dev,01407] Re: mariadbでmroongaがクラッシュしてしまう現象について" on Mon, 20 May 2013 14:05:16 +0900,
>>>     WING☆ <wings****@wing-*****> wrote:
>>>
>>>>> Fedora19のMariaDBでは問題は起きないんですよね?
>>>>> うーん、オプションが同じだとすると何が違うんでしょうねぇ。。。
>>>>
>>>> そうですねー、
>>>> Fedora19では試していませんが、少なくとも、磯部様の前のメールにも
>>>> あるとおり、テーブルは作れますし、私の自宅サーバではZabbix、
>>>> Postfixadmin、phpMyAdmin等各種MariaDBに
>>>> 関わるものに関しては、運用も問題無く動作しております。
>>>
>>> そうなんですか!
>>> とすると、mroongaが悪いのかもしれませんね。。。
>>>
>>> MariaDBに渡しているCMakeのオプションをできるだけとってビルド
>>> するとどうでしょうか?以下の4つくらいまで減らせないかなぁと
>>> 思うのですが。。。
>>>
>>>     -DINSTALL_LAYOUT=RPM
>>>     -DCMAKE_INSTALL_PREFIX="%{_prefix}"
>>>     -DMYSQL_DATADIR="/var/lib/mysql"
>>>     -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock"
>>>
>>> --
>>> 須藤 功平 <kou****@clear*****>
>>> 株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)
>>>
>>> groongaサポート:
>>>     http://groonga.org/ja/support/
>>> パッチ採用はじめました:
>>>     http://www.clear-code.com/recruitment/
>>> コミットへのコメントサービスはじめました:
>>>     http://www.clear-code.com/services/commit-comment.html
>>>
>>> _______________________________________________
>>> groonga-dev mailing list
>>> groon****@lists*****
>>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>>
>> _______________________________________________
>> groonga-dev mailing list
>> groon****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
>>
> 
> 


-- 
━━━━━━━━━━━━………‥‥‥・・・
WING☆
http://wingse.blog57.fc2.com/
http://sourceforge.jp/projects/wing-repo/
twitter:wingstars555
Facebook:http://facebook.com/ason.fukui.5
━━━━━━━━━━━━……‥‥・・




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