Kouhei Sutou
kou****@clear*****
2013年 5月 22日 (水) 16:56:41 JST
須藤です。 追加情報ありがとうございます! ちょっと調査に時間がかかりそうなんですが、遅くても来月リリー ス分では対応できるといいなぁと思っています。(MariaDBが入る Fedora 19がリリースされそうなので。) In <519AF****@wing-*****> "[groonga-dev,01414] Re: mariadbでmroongaがクラッシュしてしまう現象について" on Tue, 21 May 2013 13:20:55 +0900, WING☆ <wings****@wing-*****> wrote: > WING☆です。 > お世話になっております。 > > 結論から申し上げますと、元々のcmakeのオプションから、 > -DBUILD_CONFIG=mysql_release > を削除するだけでうまく行きました。 > > 違いを見てみましたところ、show engines;で違いが見られました。 > > ★ BUILD_CONFIGあり > +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ > | Engine | Support | Comment > | Transactions | XA | Savepoints | > +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ > | MEMORY | YES | Hash based, stored in memory, useful > for temporary tables | NO | NO | NO | > | MRG_MYISAM | YES | Collection of identical MyISAM tables > | NO | NO | NO | > | CSV | YES | CSV storage engine > | NO | NO | NO | > | BLACKHOLE | YES | /dev/null storage engine (anything you > write to it disappears) | NO | NO | NO | > | MyISAM | YES | MyISAM storage engine > | NO | NO | NO | > | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, > row-level locking, and foreign keys | YES | YES | YES | > | mroonga | YES | CJK-ready fulltext search, column store > | NO | NO | NO | > | PERFORMANCE_SCHEMA | YES | Performance Schema > | NO | NO | NO | > | FEDERATED | YES | FederatedX pluggable storage engine > | YES | NO | YES | > | Aria | YES | Crash-safe tables with MyISAM heritage > | NO | NO | NO | > | ARCHIVE | YES | Archive storage engine > | NO | NO | NO | > +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ > > ★ BUILD_CONFIGなし > +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ > | Engine | Support | Comment > | Transactions | XA | Savepoints | > +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ > | MyISAM | YES | MyISAM storage engine > | NO | NO | NO | > | PERFORMANCE_SCHEMA | YES | Performance Schema > | NO | NO | NO | > | CSV | YES | CSV storage engine > | NO | NO | NO | > | MRG_MYISAM | YES | Collection of identical MyISAM tables > | NO | NO | NO | > | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, > row-level locking, and foreign keys | YES | YES | YES | > | MEMORY | YES | Hash based, stored in memory, useful > for temporary tables | NO | NO | NO | > | mroonga | YES | CJK-ready fulltext search, column store > | NO | NO | NO | > | Aria | YES | Crash-safe tables with MyISAM heritage > | NO | NO | NO | > +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ > > 比較してみますと、-DBUILD_CONFIG=mysql_releaseを削除することで、 > 以下のストレージエンジンが無くなります。 > > BLACKHOLE > FEDERATED > ARCHIVE > > ひょっとして、これのうちのどれかが邪魔してるとか、コンフリクトしてるとか > その他あるのかもしれません。 > > また、パラメータも比較してみました。 > --- > # diff -up variables_ok.txt variables_ng.txt > --- variables_ok.txt 2013-05-21 13:08:23.007000070 +0900 > +++ variables_ng.txt 2013-05-21 13:11:30.175000170 +0900 > @@ -321,7 +321,7 @@ progress_report_time 56 > protocol_version 10 > proxy_user > pseudo_slave_mode OFF > -pseudo_thread_id 5 > +pseudo_thread_id 3 > query_alloc_block_size 8192 > query_cache_limit 1048576 > query_cache_min_res_unit 4096 > @@ -420,7 +420,7 @@ thread_stack 294912 > time_format %H:%i:%s > time_zone SYSTEM > timed_mutexes OFF > -timestamp 1369109303.002687 > +timestamp 1369109490.147685 > tmp_table_size 16777216 > tmpdir /tmp > transaction_alloc_block_size 8192 > @@ -430,7 +430,7 @@ unique_checks ON > updatable_views_with_limit YES > userstat OFF > version 5.5.30-MariaDB > -version_comment Source distribution > +version_comment MariaDB Server > version_compile_machine i686 > version_compile_os Linux > wait_timeout 28800 > --- > これは特に問題になるようなことは無さそうですが、一応参考までに。 > > いずれにしても、自分はMySQLのソースまで追いかけることができませんので、 > ここまでかなという気もしますが、とりあえずwingリポジトリでは、この > オプションを抜いた形のrpmを今後公開して行こうかと思ってます。 > もしも、修正が可能でしたら元に戻そうかと思います。 > > 念のため、簡単ではありますが、以下のSQLを実行し正常に動作することを > 確認しております。 > > CREATE DATABASE wingtest; > USE wingtest; > CREATE TABLE bbb (id INT) ENGINE=mroonga; > INSERT INTO bbb(id) VALUES(1); > SELECT * FROM bbb; > UPDATE bbb SET id=2; > SELECT * FROM bbb; > DELETE FROM bbb; > SELECT * FROM bbb; > DROP TABLE bbb; > DROP DATABASE wingtest; > > たぶん、MariaDB 10.0も同じと思いますので、試してみたいと思います。 > > 以上、宜しくお願い致します。 > > > > > > (2013/05/21 0:07), WING☆ wrote: >> 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 mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev