summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/innodb/t/innodb_bug38231.test
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:24:36 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:24:36 +0000
commit06eaf7232e9a920468c0f8d74dcf2fe8b555501c (patch)
treee2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/suite/innodb/t/innodb_bug38231.test
parentInitial commit. (diff)
downloadmariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.tar.xz
mariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.zip
Adding upstream version 1:10.11.6.upstream/1%10.11.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/innodb/t/innodb_bug38231.test')
-rw-r--r--mysql-test/suite/innodb/t/innodb_bug38231.test76
1 files changed, 76 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/t/innodb_bug38231.test b/mysql-test/suite/innodb/t/innodb_bug38231.test
new file mode 100644
index 00000000..0c139c33
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb_bug38231.test
@@ -0,0 +1,76 @@
+--source include/have_innodb.inc
+#
+# Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK
+# http://bugs.mysql.com/38231
+#
+
+# skip this test in embedded mode because "TRUNCATE TABLE bug38231_1"
+# hangs in that mode waiting for "lock_wait_timeout" although it is
+# preceded by --send
+-- source include/not_embedded.inc
+
+SET default_storage_engine=InnoDB;
+
+# we care only that the following SQL commands do not crash the server
+-- disable_query_log
+-- disable_result_log
+
+DROP TABLE IF EXISTS bug38231_1;
+CREATE TABLE bug38231_1 (a INT);
+
+-- connect (lock_gain,localhost,root,,)
+-- connect (lock_wait1,localhost,root,,)
+-- connect (lock_wait2,localhost,root,,)
+-- connect (truncate_wait,localhost,root,,)
+
+-- connection lock_gain
+SET autocommit=0;
+LOCK TABLE bug38231_1 WRITE;
+
+-- connection lock_wait1
+SET autocommit=0;
+-- send
+LOCK TABLE bug38231_1 WRITE;
+
+-- connection lock_wait2
+SET autocommit=0;
+-- send
+LOCK TABLE bug38231_1 WRITE;
+
+-- connection truncate_wait
+-- send
+TRUNCATE TABLE bug38231_1;
+
+-- connection lock_gain
+# this crashes the server if the bug is present
+UNLOCK TABLES;
+
+# clean up
+
+# do not clean up - we do not know which of the three has been released
+# so the --reap command may hang because the command that is being executed
+# in that connection is still running/waiting
+#-- connection lock_wait1
+#-- reap
+#UNLOCK TABLES;
+#
+#-- connection lock_wait2
+#-- reap
+#UNLOCK TABLES;
+#
+#-- connection truncate_wait
+#-- reap
+
+-- connection default
+
+-- disconnect lock_gain
+-- disconnect lock_wait1
+-- disconnect lock_wait2
+-- disconnect truncate_wait
+
+DROP TABLE bug38231_1;
+
+-- enable_query_log
+-- enable_result_log
+
+-- connection default