diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-04-26 20:58:29 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2016-04-26 20:58:29 +0200 |
commit | 30d9d4e26d2e0f8cbbd1220df077fe809c8bbfe4 (patch) | |
tree | 38cbf0bdf6721bfa58b549cb0e14f5adcfb8df6c /storage/tokudb/mysql-test/tokudb_bugs | |
parent | 9a957a5b56005f1387aedb77509e1a0c31b7da9a (diff) | |
download | mariadb-git-30d9d4e26d2e0f8cbbd1220df077fe809c8bbfe4.tar.gz |
5.6.29-76.2
Diffstat (limited to 'storage/tokudb/mysql-test/tokudb_bugs')
9 files changed, 168 insertions, 4 deletions
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db756_card_part_hash_1_pick.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db756_card_part_hash_1_pick.result index caaa963c325..5ba5da21789 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/r/db756_card_part_hash_1_pick.result +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db756_card_part_hash_1_pick.result @@ -17,5 +17,5 @@ test.t analyze status OK show indexes from t; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t 0 PRIMARY 1 id A 7 NULL NULL BTREE -t 1 x 1 x A 7 NULL NULL YES BTREE +t 1 x 1 x A 3 NULL NULL YES BTREE drop table t; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db757_part_alter_analyze.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db757_part_alter_analyze.result index 4b82cb06026..aa207e44807 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/r/db757_part_alter_analyze.result +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db757_part_alter_analyze.result @@ -15,7 +15,7 @@ test.t analyze status OK show indexes from t; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t 0 PRIMARY 1 id A 5 NULL NULL BTREE -t 1 x 1 x A 5 NULL NULL YES BTREE +t 1 x 1 x A 2 NULL NULL YES BTREE t 1 y 1 y A 5 NULL NULL YES BTREE alter table t analyze partition p1; Table Op Msg_type Msg_text @@ -23,13 +23,13 @@ test.t analyze status OK show indexes from t; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t 0 PRIMARY 1 id A 5 NULL NULL BTREE -t 1 x 1 x A 5 NULL NULL YES BTREE +t 1 x 1 x A 2 NULL NULL YES BTREE t 1 y 1 y A 5 NULL NULL YES BTREE insert into t values (100,1,1),(200,2,1),(300,3,1),(400,4,1),(500,5,1); show indexes from t; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t 0 PRIMARY 1 id A 9 NULL NULL BTREE -t 1 x 1 x A 9 NULL NULL YES BTREE +t 1 x 1 x A 4 NULL NULL YES BTREE t 1 y 1 y A 9 NULL NULL YES BTREE alter table t analyze partition p0; Table Op Msg_type Msg_text diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db917.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db917.result new file mode 100644 index 00000000000..9c29033429e --- /dev/null +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db917.result @@ -0,0 +1,14 @@ +drop table if exists t1; +set @orig_table_open_cache = @@global.table_open_cache; +create table t1(a int) engine = tokudb partition by key(a) partitions 2 (partition p0 engine = tokudb, partition p1 engine = tokudb); +lock tables t1 read; +set @@global.table_open_cache = 1; +begin; +insert into t1 values(1),(1); +select * from t1 where c like _ucs2 0x039C0025 collate ucs2_unicode_ci; +ERROR 42S22: Unknown column 'c' in 'where clause' +create table t1(c1 binary (1), c2 varbinary(1)); +ERROR 42S01: Table 't1' already exists +unlock tables; +drop table t1; +set @@global.table_open_cache = @orig_table_open_cache; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db938.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db938.result new file mode 100644 index 00000000000..6ec3a2c8079 --- /dev/null +++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db938.result @@ -0,0 +1,34 @@ +set @orig_auto_analyze = @@session.tokudb_auto_analyze; +set @orig_in_background = @@session.tokudb_analyze_in_background; +set @orig_mode = @@session.tokudb_analyze_mode; +set @orig_throttle = @@session.tokudb_analyze_throttle; +set @orig_time = @@session.tokudb_analyze_time; +set @orig_scale_percent = @@global.tokudb_cardinality_scale_percent; +set @orig_default_storage_engine = @@session.default_storage_engine; +set @orig_pause_background_job_manager = @@global.tokudb_debug_pause_background_job_manager; +set session default_storage_engine = 'tokudb'; +set session tokudb_auto_analyze = 1; +set session tokudb_analyze_in_background = 1; +set session tokudb_analyze_mode = tokudb_analyze_standard; +set session tokudb_analyze_throttle = 0; +set session tokudb_analyze_time = 0; +set global tokudb_cardinality_scale_percent = DEFAULT; +set global tokudb_debug_pause_background_job_manager = TRUE; +create table t1 (a int not null auto_increment, b int, c int, primary key(a), key kb(b), key kc(c), key kabc(a,b,c), key kab(a,b), key kbc(b,c)); +insert into t1(b,c) values(0,0), (1,1), (2,2), (3,3); +select database_name, table_name, job_type, job_params, scheduler from information_schema.tokudb_background_job_status; +database_name table_name job_type job_params scheduler +test t1 TOKUDB_ANALYZE_MODE_STANDARD TOKUDB_ANALYZE_DELETE_FRACTION=1.000000; TOKUDB_ANALYZE_TIME=0; TOKUDB_ANALYZE_THROTTLE=0; AUTO +set DEBUG_SYNC = 'tokudb_after_truncate_all_dictionarys SIGNAL closed WAIT_FOR done'; +TRUNCATE TABLE t1; +set global tokudb_debug_pause_background_job_manager = FALSE; +set DEBUG_SYNC = 'now SIGNAL done'; +drop table t1; +set session tokudb_auto_analyze = @orig_auto_analyze; +set session tokudb_analyze_in_background = @orig_in_background; +set session tokudb_analyze_mode = @orig_mode; +set session tokudb_analyze_throttle = @orig_throttle; +set session tokudb_analyze_time = @orig_time; +set global tokudb_cardinality_scale_percent = @orig_scale_percent; +set session default_storage_engine = @orig_default_storage_engine; +set global tokudb_debug_pause_background_job_manager = @orig_pause_background_job_manager; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db917.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db917.test new file mode 100644 index 00000000000..730c91ec838 --- /dev/null +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db917.test @@ -0,0 +1,22 @@ +# test DB-917 +# test that table/share open lock timeout does not crash the server on subsequent access +source include/have_tokudb.inc; +disable_warnings; +drop table if exists t1; +enable_warnings; +set @orig_table_open_cache = @@global.table_open_cache; +create table t1(a int) engine = tokudb partition by key(a) partitions 2 (partition p0 engine = tokudb, partition p1 engine = tokudb); +lock tables t1 read; +set @@global.table_open_cache = 1; +begin; +insert into t1 values(1),(1); +# when the bug is present, this results in a lock wait timeout +--error ER_BAD_FIELD_ERROR +select * from t1 where c like _ucs2 0x039C0025 collate ucs2_unicode_ci; +# when the bug exists, this results in the assertion +# kc_info->cp_info[keynr] == NULL in tokudb/ha_tokudb.cc initialize_col_pack_info +--error ER_TABLE_EXISTS_ERROR +create table t1(c1 binary (1), c2 varbinary(1)); +unlock tables; +drop table t1; +set @@global.table_open_cache = @orig_table_open_cache; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db938.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db938.test new file mode 100644 index 00000000000..f1912faad02 --- /dev/null +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db938.test @@ -0,0 +1,76 @@ +# This test for DB-938 tests a race condition where a scheduled background job +# (analyze) ends up operating on a set of DB* key_file[] in TOKUDB_SHARE that +# were set to NULL during a TRUNCATE TABLE operation. + +-- source include/have_tokudb.inc +-- source include/have_debug.inc +-- source include/have_debug_sync.inc + +-- enable_query_log + +set @orig_auto_analyze = @@session.tokudb_auto_analyze; +set @orig_in_background = @@session.tokudb_analyze_in_background; +set @orig_mode = @@session.tokudb_analyze_mode; +set @orig_throttle = @@session.tokudb_analyze_throttle; +set @orig_time = @@session.tokudb_analyze_time; +set @orig_scale_percent = @@global.tokudb_cardinality_scale_percent; +set @orig_default_storage_engine = @@session.default_storage_engine; +set @orig_pause_background_job_manager = @@global.tokudb_debug_pause_background_job_manager; + +# first, lets set up to auto analyze in the background with about any activity +set session default_storage_engine = 'tokudb'; +set session tokudb_auto_analyze = 1; +set session tokudb_analyze_in_background = 1; +set session tokudb_analyze_mode = tokudb_analyze_standard; +set session tokudb_analyze_throttle = 0; +set session tokudb_analyze_time = 0; +set global tokudb_cardinality_scale_percent = DEFAULT; + +# in debug build, we can prevent the background job manager from running, +# let's do it to hold a job from running until we get the TRUNCATE TABLE +# in action +set global tokudb_debug_pause_background_job_manager = TRUE; + +create table t1 (a int not null auto_increment, b int, c int, primary key(a), key kb(b), key kc(c), key kabc(a,b,c), key kab(a,b), key kbc(b,c)); + +insert into t1(b,c) values(0,0), (1,1), (2,2), (3,3); + +# insert above should have triggered an analyze, but since the bjm is paused, +# we will see it sitting in the queue +select database_name, table_name, job_type, job_params, scheduler from information_schema.tokudb_background_job_status; + +# lets flip to another connection +connect(conn1, localhost, root); + +# set up the DEBUG_SYNC point +set DEBUG_SYNC = 'tokudb_after_truncate_all_dictionarys SIGNAL closed WAIT_FOR done'; + +# send the truncat table +send TRUNCATE TABLE t1; + +# back to default connection +connection default; + +# release the bjm +set global tokudb_debug_pause_background_job_manager = FALSE; + +# if the bug is present, the bjm should crash here within 1/4 of a second +sleep 5; + +# lets release and clean up +set DEBUG_SYNC = 'now SIGNAL done'; + +connection conn1; +reap; +connection default; +disconnect conn1; +drop table t1; + +set session tokudb_auto_analyze = @orig_auto_analyze; +set session tokudb_analyze_in_background = @orig_in_background; +set session tokudb_analyze_mode = @orig_mode; +set session tokudb_analyze_throttle = @orig_throttle; +set session tokudb_analyze_time = @orig_time; +set global tokudb_cardinality_scale_percent = @orig_scale_percent; +set session default_storage_engine = @orig_default_storage_engine; +set global tokudb_debug_pause_background_job_manager = @orig_pause_background_job_manager; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/xa-3.test b/storage/tokudb/mysql-test/tokudb_bugs/t/xa-3.test index 4bca18ad109..806684f3acc 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/t/xa-3.test +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/xa-3.test @@ -1,6 +1,12 @@ -- source include/have_innodb.inc -- source include/have_tokudb.inc -- source include/have_debug.inc +# Valgrind would report memory leaks on the intentional crashes +-- source include/not_valgrind.inc +# Embedded server does not support crashing +-- source include/not_embedded.inc +# Avoid CrashReporter popup on Mac +-- source include/not_crashrep.inc --disable_warnings drop table if exists t1, t2; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/xa-4.test b/storage/tokudb/mysql-test/tokudb_bugs/t/xa-4.test index 5e4071c7b93..cb7ef4d1495 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/t/xa-4.test +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/xa-4.test @@ -1,6 +1,12 @@ -- source include/have_innodb.inc -- source include/have_tokudb.inc -- source include/have_debug.inc +# Valgrind would report memory leaks on the intentional crashes +-- source include/not_valgrind.inc +# Embedded server does not support crashing +-- source include/not_embedded.inc +# Avoid CrashReporter popup on Mac +-- source include/not_crashrep.inc --disable_warnings drop table if exists t1, t2; diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test b/storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test index b6f770f0a68..5ce94c88f6c 100644 --- a/storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test +++ b/storage/tokudb/mysql-test/tokudb_bugs/t/xa-6.test @@ -1,5 +1,11 @@ --source include/have_tokudb.inc --source include/have_debug.inc +# Valgrind would report memory leaks on the intentional crashes +-- source include/not_valgrind.inc +# Embedded server does not support crashing +-- source include/not_embedded.inc +# Avoid CrashReporter popup on Mac +-- source include/not_crashrep.inc --disable_warnings drop table if exists t1; |