[groonga-dev,03673] ラッパーモードで ALTER TABLE foo {ENABLE,DISABLE} KEYS すると死亡フラグ?

Back to archive index

Tomohiro 'Tomo-p' KATO tomop****@teamg*****
2015年 11月 26日 (木) 11:59:17 JST


 こんにちは。かとうです。

  手元で以下のようなことが発生しています。

  mysqldumpに--disable-keys=FALSEをつけずにダンプ・リストアを
 行っていて踏みました。不思議なことに、ファイルから流し込むの
 ではなくプロンプト上でペーストすると再現しません。

  また、下記の実験では「2回」実行していますが、1回でも実行し
 た後にmysql_upgradeを行うと、ストレージモードのテーブルも含め
 て同DB内にあるENGINE=Mroongaなものが全て破損しました。


実験環境:
-------------------------------------------------------------------------
- OS: VineSeed (Vine Linux unstable) kernel-4.1.12-vl7
- MariaDB: 10.1.9 に以下をembedしてビルドしたもの
- Mroonga: v5.09-52-g8292e65
- Groonga: v5.0.9-168-gc62a77c
- groonga-normalizer-mysql: 1.1.0

(Vine Linux 6 + MariaDB 10.0.22 + 以下同文な環境でも発生)
-------------------------------------------------------------------------

my.cnf設定:
-------------------------------------------------------------------------
[mysqld]
character-set-server=utf8mb4
innodb_data_file_path=ibdata1:64M
innodb_file_per_table

[client]
default-character-set=utf8mb4
-------------------------------------------------------------------------

再現クエリ: crash.sql
-------------------------------------------------------------------------
DROP TABLE IF EXISTS WRAPPER_TEST;
CREATE TABLE WRAPPER_TEST (
HOGE int NOT NULL PRIMARY KEY
) ENGINE=Mroonga COMMENT='engine "InnoDB"';

ALTER TABLE WRAPPER_TEST DISABLE KEYS;
INSERT INTO WRAPPER_TEST VALUES(1);
ALTER TABLE WRAPPER_TEST ENABLE KEYS;
-------------------------------------------------------------------------

再現SQLを「2回」流し込んでみる:
-------------------------------------------------------------------------
# mysql MROONGA_TEST < crash.sql
# mysql MROONGA_TEST < crash.sql
ERROR 1813 (HY000) at line 2: Tablespace for table '`MROONGA_TEST`.`WRAPPER_TEST`' exists. Please DISCARD the tablespace before IMPORT.
-------------------------------------------------------------------------

データベースディレクトリ内の模様: .frmがないのに.ibdだけある
-------------------------------------------------------------------------
# ls /var/lib/mysql/MROONGA_TEST/
WRAPPER_TEST.ibd  db.opt
-------------------------------------------------------------------------

1回目の直後のgroonga.log:
-------------------------------------------------------------------------
2015-11-26 10:41:41.290523|n|71e4d700|DDL:table_create mroonga_operations
2015-11-26 10:41:41.321138|n|71e4d700|DDL:column_create mroonga_operations type
2015-11-26 10:41:41.322409|n|71e4d700|DDL:column_create mroonga_operations table
2015-11-26 10:41:41.324093|n|71e4d700|DDL:column_create mroonga_operations record
2015-11-26 10:41:41.325358|n|71e4d700|DDL:table_create WRAPPER_TEST
-------------------------------------------------------------------------

2回目の直後のgroonga.log:
-------------------------------------------------------------------------
2015-11-26 10:42:50.586620|n|71e4d700|DDL:obj_remove WRAPPER_TEST
2015-11-26 10:42:50.629897|n|71e4d700|DDL:table_create WRAPPER_TEST
2015-11-26 10:42:50.631301|n|71e4d700|DDL:obj_remove WRAPPER_TEST
-------------------------------------------------------------------------

1回目の直後にgroongaコマンドで覗いてみる:
-------------------------------------------------------------------------
> table_list
[[0,1448502324.73729,0.0053703784942627],[[["id","UInt32"],["name","ShortText"],["path","ShortText"],["flags","ShortText"],["domain","ShortText"],["range","ShortText"],["default_tokenizer","ShortText"],["normalizer","ShortText"]],[265,"WRAPPER_TEST","MROONGA_TEST.mrn.0000109","TABLE_HASH_KEY|PERSISTENT","ShortText",null,null,null],[256,"mroonga_operations","MROONGA_TEST.mrn.0000100","TABLE_NO_KEY|PERSISTENT",null,null,null,null]]]
-------------------------------------------------------------------------

2回目の直後にgroongaコマンドで覗いてみる:
-------------------------------------------------------------------------
> table_list
[[0,1448502232.11492,0.00529813766479492],[[["id","UInt32"],["name","ShortText"],["path","ShortText"],["flags","ShortText"],["domain","ShortText"],["range","ShortText"],["default_tokenizer","ShortText"],["normalizer","ShortText"]],[256,"mroonga_operations","MROONGA_TEST.mrn.0000100","TABLE_NO_KEY|PERSISTENT",null,null,null,null]]]
-------------------------------------------------------------------------

-- 
    __________________________________________________
  _/_/  Tomohiro "Tomo-p" KATO  <tomop****@teamg*****>
 _/_/  Team Gedoh Network  http://www.teamgedoh.net/
_/_/  Key fingerprint: 3347 89D9 5B87 29E6 33A2  30C1 B12F A313 30C4 13F0




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