Satoshi Mitani
mitan****@ybb*****
2018年 4月 11日 (水) 13:43:48 JST
三谷です。 Percona に RocksDBが入ったタイミングで、mroongaが使っていた(ストレージエンジンの種類を示す?)フラグ値42 がRocksDB用に変更されてしまったようです。 https://github.com/percona/percona-server/commit/805173fed3db20c9c7be7a5bb41bda9d2a53b6ca frm ファイルの4バイト目にこのフラグがかかれているので、バイナリエディタで、4バイト目を42から43に変更すれば、 バージョンアップ後もmroongaテーブルが開けること確認しました。 これはmroongaではなくPerconaの実装が良くない気がしますが、すでに須藤さんがmroonga側で対象するコードを書いてくれているみたいです。 >須藤さん 補足あればお願いします。 よろしくお願いします。 2018/03/29 17:24、木下崇 <kino.****@gmail*****>のメール: > 五月雨で申し訳ありません。 > > > 2. 再現するコマンドラインの確立 > 下記の通りとなります。 ご確認いただけますでしょうか? > > > // 5.6.33環境 > > sudo yum install Percona-Server-server-56-5.6.33-rel79.0.el6.x86_64.rpm \ > Percona-Server-client-56-5.6.33-rel79.0.el6.x86_64.rpm \ > percona-server-56-mroonga-6.09-2.el6.x86_64.rpm \ > mecab-ipadic-2.7.0.20070801-6.el6.1.x86_64.rpm \ > mecab-0.994-2.el6.x86_64.rpm \ > mecab-ipadic-2.7.0.20070801-6.el6.1.x86_64.rpm \ > groonga-plugin-suggest-6.0.4-1.el6.x86_64.rpm \ > groonga-normalizer-mysql-1.1.0-1.el6.x86_64.rpm \ > groonga-libs-6.0.4-1.el6.x86_64.rpm \ > groonga-6.0.4-1.el6.x86_64.rpm \ > Percona-Server-shared-56-5.6.33-rel79.0.el6.x86_64.rpm > > sudo systemctl start mysql > > > CREATE DATABASE t_schema; > use t_schema; > CREATE TABLE `tags` ( > `id` int(10) unsigned NOT NULL AUTO_INCREMENT, > `tag_type` int(10) unsigned NOT NULL, > `tag_name` varchar(255) NOT NULL, > `tag_name_kana` varchar(255) DEFAULT NULL, > `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', > `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, > `deleted_at` timestamp NULL DEFAULT NULL, > PRIMARY KEY (`id`), > FULLTEXT KEY `tag_name` (`tag_name`) > ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='engine "InnoDB"' > > INSERT INTO `storage_tags` (tag_type, tag_name, tag_name_kana ,created_at, updated_at, deleted_at) VALUES (0,'あああ_いい','01あああ_01いい','2017-06-30 10:10:00','2018-09-09 01:00:00','0000-00-00 00:00:00'); > > > // 5.6.37環境 > sudo yum install libevent-1.4.13-4.el6.x86_64.rpm > sudo yum install lz4 libzstd msgpack libevent zeromq3 > > sudo yum install groonga-7.0.7-1.el6.x86_64.rpm > groonga-libs-7.0.7-1.el6.x86_64.rpm > groonga-normalizer-mysql-1.1.1-1.el6.x86_64.rpm > groonga-plugin-suggest-7.0.7-1.el6.x86_64.rpm > groonga-tokenizer-mecab-7.0.7-1.el6.x86_64.rpm > mecab-0.994-2.el6.x86_64.rpm > mecab-ipadic-2.7.0.20070801-6.el6.1.x86_64.rpm > percona-server-56-mroonga-7.07-1.el6.x86_64.rpm > Percona-Server-client-56-5.6.37-rel82.2.el6.x86_64.rpm > Percona-Server-shared-56-5.6.37-rel82.2.el6.x86_64.rpm > Percona-Server-server-56-5.6.37-rel82.2.el6.x86_64.rpm > > > > > > == > // 5.6.33環境dでスキーマ、テーブルを作成、データ挿入 > CREATE DATABASE t_schema; > use t_schema; > CREATE TABLE `tags` ( > `id` int(10) unsigned NOT NULL AUTO_INCREMENT, > `tag_type` int(10) unsigned NOT NULL, > `tag_name` varchar(255) NOT NULL, > `tag_name_kana` varchar(255) DEFAULT NULL, > `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', > `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, > `deleted_at` timestamp NULL DEFAULT NULL, > PRIMARY KEY (`id`), > FULLTEXT KEY `tag_name` (`tag_name`) > ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='engine "InnoDB"' > > INSERT INTO `storage_tags` (tag_type, tag_name, tag_name_kana ,created_at, updated_at, deleted_at) VALUES (0,'あああ_いい','01あああ_01いい','2017-06-30 10:10:00','2018-09-09 01:00:00','0000-00-00 00:00:00'); > > // 5.6.33環境を停止し、5.6.37環境へ物理コピー > sudo systemctl stop mysql > > // 5.6.37環境で起動 > sudo systemctl start mysql > > mysql> show tables; > +--------------------+ > | Tables_in_t_schema | > +--------------------+ > | tags | > +--------------------+ > 1 row in set (0.01 sec) > > mysql> select * from tags; > ERROR 1033 (HY000): Incorrect information in file: './t_schema/tags.frm' > > > > > > > > > 2018年3月29日 14:57 木下崇 <kino.****@gmail*****>: >> 堀本さん 須藤さん >> >> お世話になります。 >> ご確認ありがとうございます。 >> >> 以下いずれの場合も同様にfrmのIncorrect informationエラーの状況です。 >> >> >> // timestapmカラムを削除 (ラッパーモード) >> CREATE TABLE `a_schema.tags_without_timestamp` ( >> `id` int(10) unsigned NOT NULL AUTO_INCREMENT, >> `tag_type` int(10) unsigned NOT NULL, >> `tag_name` varchar(255) NOT NULL, >> `tag_name_kana` varchar(255) DEFAULT NULL, >> PRIMARY KEY (`id`), >> FULLTEXT KEY `tag_name` (`tag_name`) >> ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='engine "InnoDB"'; >> >> >> // timestapmカラムを削除 (ストレージモード) >> CREATE TABLE `storage_tags_without_timestamp` ( >> `id` int(10) unsigned NOT NULL AUTO_INCREMENT, >> `tag_type` int(10) unsigned NOT NULL, >> `tag_name` varchar(255) NOT NULL, >> `tag_name_kana` varchar(255) DEFAULT NULL, >> PRIMARY KEY (`id`), >> FULLTEXT KEY `tag_name` (`tag_name`) >> ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; >> >> >> >> // FULLTEXT KEYを削除(ラッパーモード) >> CREATE TABLE `b_schema.tags_without_fulltext_key` ( >> `id` int(10) unsigned NOT NULL AUTO_INCREMENT, >> `tag_type` int(10) unsigned NOT NULL, >> `tag_name` varchar(255) NOT NULL, >> `tag_name_kana` varchar(255) DEFAULT NULL, >> `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', >> `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, >> `deleted_at` timestamp NULL DEFAULT NULL, >> PRIMARY KEY (`id`) >> ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='engine "InnoDB"'; >> >> >> // FULLTEXT KEYを削除(ストレージモード) >> CREATE TABLE `storage_tags_without_fulltext_key` ( >> `id` int(10) unsigned NOT NULL AUTO_INCREMENT, >> `tag_type` int(10) unsigned NOT NULL, >> `tag_name` varchar(255) NOT NULL, >> `tag_name_kana` varchar(255) DEFAULT NULL, >> `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', >> `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, >> `deleted_at` timestamp NULL DEFAULT NULL, >> PRIMARY KEY (`id`) >> ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; >> >> >> >> 取り急ぎのご報告となります。 >> >> >> >> >> >> >> >> 2018年3月21日 16:22 木下崇 <kino.****@gmail*****>: >> >>> 堀本さん >>> >>> ご返信ありがとうございます。 >>> >>> > Mroongaを使用していない場合でも同様の問題が発生するかどうかを確認頂くことは可能でしょうか? >>> >>> こちらについてですが、Mroongaを利用していないテーブルでは同様の問題は発生しないことを確認しております。 >>> その他確認すべき事項あれば、ご指摘をいただけますと幸いです。 >>> >>> 引き続きよろしくおねがいいたします。 >>> >>> >>> 2018年3月18日 22:38 木下崇 <kino.****@gmail*****>: >>> >>>> 堀本さん >>>> >>>> お世話になります。 >>>> ご返信ありがとうございます。 >>>> レスポンスが遅くなり申し訳ありません。 >>>> >>>> 下記の通りストレージモードでも同様のエラーとなりました。 >>>> >>>> ■実施したこと >>>> Percona-Server-server-56.x86_64 5.6.33-rel79.0.el6 で下記テーブルを作成し、 >>>> ラッパーモードのtagsテーブルと同じデータを投入。 >>>> >>>> >>>> | storage_tags | CREATE TABLE `storage_tags` ( >>>> `id` int(10) unsigned NOT NULL AUTO_INCREMENT, >>>> `tag_type` int(10) unsigned NOT NULL, >>>> `tag_name` varchar(255) NOT NULL, >>>> `tag_name_kana` varchar(255) DEFAULT NULL, >>>> `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', >>>> `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, >>>> `deleted_at` timestamp NULL DEFAULT NULL, >>>> PRIMARY KEY (`id`), >>>> FULLTEXT KEY `tag_name` (`tag_name`) >>>> ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC | >>>> >>>> データ投入 >>>> insert into storage_tags select * from tags; >>>> >>>> Percona-Server-server-56.x86_64 5.6.37-rel82.2.el6にバージョンアップを実施し、 >>>> 作成したテーブルでselectを実施。 >>>> >>>> ■エラーログ >>>> /usr/sbin/mysqld: Incorrect information in file: './t_schema/storage_tags.frm' >>>> >>>> お手数をおかけしますが、ご確認とご助言いただけますと幸いです。 >>>> そのほか調査に必要な情報ありましたら、ご指示いただけますでしょうか? >>>> >>>> 以上よろしくおねがいいたします。 >>>> >>>> >>>> >>>> >>>> >>>> 2018年3月14日 18:17 Horimoto Yasuhiro <horim****@clear*****>: >>>> >>>>> 木下さん >>>>> >>>>> こんにちは。堀本です。 >>>>> >>>>> エラーメッセージで出力されているファイル('./t_schema/tags.frm')は >>>>> mysql(percona-server)管理のファイルで、メタデータを格納しているも >>>>> のです。 >>>>> バージョンアップによって、このメタデータが破損したのかもしれません。 >>>>> >>>>> まず、Mroongaをラッパーモードで使用しているために起きた問題なのか >>>>> を切り分けるため、Mroongaをストレージモードで使用した際も同じ現象が >>>>> 起きるかどうかご確認いただけますでしょうか? >>>>> >>>>> Mroongaをストレージモードで使用する場合は、テーブル定義を以下のように >>>>> することで、ストレージモードで使用できます。 >>>>> (COMMENT='engine "InnoDB"'を外していただければストレージモードとして >>>>> 動作します。) >>>>> >>>>> ■テーブル定義 >>>>> CREATE TABLE `tags` ( >>>>> `id` int(10) unsigned NOT NULL AUTO_INCREMENT, >>>>> `tag_type` int(10) unsigned NOT NULL, >>>>> `tag_name` varchar(255) NOT NULL, >>>>> `tag_name_kana` varchar(255) DEFAULT NULL, >>>>> `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', >>>>> `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE >>>>> CURRENT_TIMESTAMP, >>>>> `deleted_at` timestamp NULL DEFAULT NULL, >>>>> PRIMARY KEY (`id`), >>>>> FULLTEXT KEY `tag_name` (`tag_name`) >>>>> ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 >>>>> ROW_FORMAT=DYNAMIC; >>>>> >>>>> >>>>> 以上です。失礼いたします。 >>>>> >>>>> On 2018年03月13日 00:26, 木下崇 wrote: >>>>> > いつもmroongaを利用させていただいております。 >>>>> > お世話になっております。 >>>>> > >>>>> > percona-serverのマイナーバージョンアップに伴いmroongaのバージョンアップ >>>>> > を実施いたしました。 >>>>> > その際に、下記テーブルにてエラーが発生してしまいました。 >>>>> > 旧環境からdumpし、新環境へimportすることでエラーが解消することは確認でき >>>>> > たのですが、 >>>>> > 稼働中のサーバでのバージョンアップで一律dump,importの作業は難しい状況です。 >>>>> > >>>>> > 現在原因を調査しているのですが、行き詰まっておりまして、アドバイスいただ >>>>> > けますでしょうか? >>>>> > 調査を進めるにあたり他に必要な情報があれば、ご指示いただければ幸いです。 >>>>> > >>>>> > よろしくおねがいいたします。 >>>>> > >>>>> > >>>>> > ■実施したこと >>>>> > percona-serverのマイナーバージョンアップとmroongaのバージョンアップ >>>>> > >>>>> > ■テーブル定義 >>>>> > CREATE TABLE `tags` ( >>>>> > `id` int(10) unsigned NOT NULL AUTO_INCREMENT, >>>>> > `tag_type` int(10) unsigned NOT NULL, >>>>> > `tag_name` varchar(255) NOT NULL, >>>>> > `tag_name_kana` varchar(255) DEFAULT NULL, >>>>> > `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', >>>>> > `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE >>>>> > CURRENT_TIMESTAMP, >>>>> > `deleted_at` timestamp NULL DEFAULT NULL, >>>>> > PRIMARY KEY (`id`), >>>>> > FULLTEXT KEY `tag_name` (`tag_name`) >>>>> > ) ENGINE=Mroonga AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb4 >>>>> > ROW_FORMAT=DYNAMIC COMMENT='engine "InnoDB"'; >>>>> > >>>>> > >>>>> > ■バージョンアップ後発生したエラー >>>>> > [ERROR] /usr/sbin/mysqld: Incorrect information in file: >>>>> > './t_schema/tags.frm' >>>>> > >>>>> > ■バージョン情報 >>>>> > 旧環境 >>>>> > Percona-Server-server-56.x86_64 5.6.33-rel79.0.el6 >>>>> > >>>>> > groonga.x86_64 6.0.4-1.el6 >>>>> > groonga-libs.x86_64 6.0.4-1.el6 >>>>> > groonga-normalizer-mysql.x86_64 1.1.0-1.el6 >>>>> > groonga-plugin-suggest.x86_64 6.0.4-1.el6 >>>>> > groonga-tokenizer-mecab.x86_64 6.0.4-1.el6 >>>>> > mecab.x86_64 0.994-2.el6 >>>>> > mecab-ipadic.x86_64 2.7.0.20070801-6.el6.1 >>>>> > percona-server-56-mroonga.x86_64 6.09-2.el6 >>>>> > >>>>> > 新環境 >>>>> > Percona-Server-server-56.x86_64 5.6.37-rel82.2.el6 >>>>> > groonga.x86_64 7.0.7-1.el6 >>>>> > groonga-libs.x86_64 7.0.7-1.el6 >>>>> > groonga-normalizer-mysql.x86_64 1.1.1-1.el6 >>>>> > groonga-plugin-suggest.x86_64 7.0.7-1.el6 >>>>> > groonga-tokenizer-mecab.x86_64 7.0.7-1.el6 >>>>> > mecab.x86_64 0.994-2.el6 >>>>> > mecab-ipadic.x86_64 2.7.0.20070801-6.el6.1 >>>>> > percona-server-56-mroonga.x86_64 7.07-1.el6 >>>>> > >>>>> > >>>>> > >>>>> > _______________________________________________ >>>>> > groonga-dev mailing list >>>>> > groon****@lists***** >>>>> > https://lists.osdn.me/mailman/listinfo/groonga-dev >>>>> > >>>> >>> >> > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > https://lists.osdn.me/mailman/listinfo/groonga-dev -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... URL: https://lists.osdn.me/mailman/archives/groonga-dev/attachments/20180411/a25259f5/attachment-0001.htm