summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/innodb/t/page_reorganize.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb/t/page_reorganize.test')
-rw-r--r--mysql-test/suite/innodb/t/page_reorganize.test56
1 files changed, 56 insertions, 0 deletions
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 00000000..74083539
--- /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