summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/innodb/t/mdev-15707.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb/t/mdev-15707.test')
-rw-r--r--mysql-test/suite/innodb/t/mdev-15707.test30
1 files changed, 30 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/mdev-15707.test b/mysql-test/suite/innodb/t/mdev-15707.test
new file mode 100644
index 00000000..a0446ef4
--- /dev/null
+++ b/mysql-test/suite/innodb/t/mdev-15707.test
@@ -0,0 +1,30 @@
+--source include/windows.inc
+# This test is slow on buildbot.
+--source include/big_test.inc
+
+# Deadlock in conjunction with the innodb change buffering.
+
+# When innodb change buffering kicks in, i.e secondary non-unique index
+# does not fit into the bufferpool, then, on Windows, innodb
+# background threads could deadlock whenever index page is
+# read, and the page needs load/merge change buffer.
+# The test tries to reproduce this situation, by creating index
+# that does not fit into bufferpool, and doing a large update.
+
+CREATE TABLE t1(
+a INT AUTO_INCREMENT PRIMARY KEY,
+b CHAR(255),
+INDEX(b))
+ENGINE=InnoDB;
+
+INSERT INTO t1(b) SELECT UUID();
+BEGIN;
+let $i=`select cast(log2(@@innodb_buffer_pool_size/255) as int)`;
+while ($i)
+{
+ INSERT INTO t1(b) SELECT UUID() FROM t1;
+ dec $i;
+}
+COMMIT;
+UPDATE t1 SET b=UUID();
+DROP TABLE t1; \ No newline at end of file