summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2019-04-29 14:05:44 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2019-04-29 15:11:06 +0300
commitbdd6e33f00bff927358a7b03798a285ff41b35b7 (patch)
tree6edda14d2eec21fa40f49801ab35d2e4b0c38d21
parent61f370a3c9997d2c7067b8cf5d39c8ad67dde5aa (diff)
downloadmariadb-git-bdd6e33f00bff927358a7b03798a285ff41b35b7.tar.gz
MDEV-13626: Add a test case
-rw-r--r--mysql-test/suite/innodb/r/page_reorganize.result27
-rw-r--r--mysql-test/suite/innodb/t/page_reorganize.test56
2 files changed, 83 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/page_reorganize.result b/mysql-test/suite/innodb/r/page_reorganize.result
new file mode 100644
index 00000000000..1059fc78531
--- /dev/null
+++ b/mysql-test/suite/innodb/r/page_reorganize.result
@@ -0,0 +1,27 @@
+#
+# Bug# 20005279 ASSERT !OTHER_LOCK, LOCK_MOVE_REORGANIZE_PAGE()
+#
+create table t1 (f1 int auto_increment primary key,
+f2 char(255)) engine=innodb;
+start transaction;
+commit;
+start transaction;
+select f1, f2 from t1 where f1 = 20 for update;
+f1 f2
+20 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+connect con1,localhost,root,,;
+select f1 from t1 where f1 = 20 for update;
+connection default;
+SET @save_dbug = @@debug_dbug;
+SET DEBUG_DBUG = '+d,do_page_reorganize,do_lock_reverse_page_reorganize';
+insert into t1(f2) values (repeat('+', 100));
+SET DEBUG = @save_dbug;
+Warnings:
+Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
+commit;
+connection con1;
+f1
+20
+disconnect con1;
+connection default;
+drop table t1;
diff --git a/mysql-test/suite/innodb/t/page_reorganize.test b/mysql-test/suite/innodb/t/page_reorganize.test
new file mode 100644
index 00000000000..7408353976d
--- /dev/null
+++ b/mysql-test/suite/innodb/t/page_reorganize.test
@@ -0,0 +1,56 @@
+--source include/have_innodb.inc
+--source include/have_innodb_16k.inc
+--source include/have_debug.inc
+
+--source include/count_sessions.inc
+
+--echo #
+--echo # Bug# 20005279 ASSERT !OTHER_LOCK, LOCK_MOVE_REORGANIZE_PAGE()
+--echo #
+
+create table t1 (f1 int auto_increment primary key,
+ f2 char(255)) engine=innodb;
+
+let $inc = 50;
+
+start transaction;
+--disable_query_log
+
+while ($inc)
+{
+ insert into t1(f2) values (repeat('~', 50));
+ dec $inc;
+}
+
+--enable_query_log
+commit;
+
+start transaction;
+select f1, f2 from t1 where f1 = 20 for update;
+
+connect (con1,localhost,root,,);
+--send
+select f1 from t1 where f1 = 20 for update;
+
+connection default;
+
+let $wait_condition=
+ select count(*) = 1 from information_schema.processlist
+ where INFO = 'select f1 from t1 where f1 = 20 for update';
+
+--source include/wait_condition.inc
+
+SET @save_dbug = @@debug_dbug;
+SET DEBUG_DBUG = '+d,do_page_reorganize,do_lock_reverse_page_reorganize';
+insert into t1(f2) values (repeat('+', 100));
+SET DEBUG = @save_dbug;
+commit;
+
+connection con1;
+reap;
+disconnect con1;
+connection default;
+
+drop table t1;
+
+--source include/wait_until_count_sessions.inc