summaryrefslogtreecommitdiff
path: root/mysql-test/t/innodb_bug38231.test
diff options
context:
space:
mode:
authorVasil Dimov <vasil.dimov@oracle.com>2010-04-16 19:19:07 +0300
committerVasil Dimov <vasil.dimov@oracle.com>2010-04-16 19:19:07 +0300
commiteaadb377af7cf6145e324acd008d8f2d3cc00aaf (patch)
tree71463e53ee744af5c89101393ffdba2fdd955ff5 /mysql-test/t/innodb_bug38231.test
parent23dd437b8089c6f7e7b021c48bb8becdbe06c35b (diff)
downloadmariadb-git-eaadb377af7cf6145e324acd008d8f2d3cc00aaf.tar.gz
Move InnoDB mysql-tests to the innodb suite.
Diffstat (limited to 'mysql-test/t/innodb_bug38231.test')
-rw-r--r--mysql-test/t/innodb_bug38231.test112
1 files changed, 0 insertions, 112 deletions
diff --git a/mysql-test/t/innodb_bug38231.test b/mysql-test/t/innodb_bug38231.test
deleted file mode 100644
index 1611cb56203..00000000000
--- a/mysql-test/t/innodb_bug38231.test
+++ /dev/null
@@ -1,112 +0,0 @@
-#
-# Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK
-# http://bugs.mysql.com/38231
-#
-
--- source include/have_innodb.inc
-
-SET 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;
-CREATE TABLE bug38231 (a INT);
-
--- connect (con1,localhost,root,,)
--- connect (con2,localhost,root,,)
--- connect (con3,localhost,root,,)
-
--- connection con1
-SET autocommit=0;
-LOCK TABLE bug38231 WRITE;
-
--- connection con2
-SET autocommit=0;
--- send
-LOCK TABLE bug38231 WRITE;
-
-# When con1 does UNLOCK below this will release either con2 or con3 which are
-# both waiting on LOCK. At the end we must first --reap and UNLOCK the
-# connection that has been released, otherwise it will wait forever. We assume
-# that the released connection will be the first one that has gained the LOCK,
-# thus we force the order here - con2 does LOCK first, then con3. In other
-# words we wait for LOCK from con2 above to be exected before doing LOCK in
-# con3.
--- connection con1
-let $wait_condition =
- SELECT COUNT(*) = 1 FROM information_schema.processlist
- WHERE info = 'LOCK TABLE bug38231 WRITE';
--- source include/wait_condition.inc
-# the above enables query log, re-disable it
--- disable_query_log
-
--- connection con3
-SET autocommit=0;
--- send
-LOCK TABLE bug38231 WRITE;
-
--- connection default
--- send
-TRUNCATE TABLE bug38231;
-
--- connection con1
-# Wait for TRUNCATE and the other two LOCKs to be executed; without this,
-# sometimes UNLOCK executes before them. We assume there are no other
-# sessions executing at the same time with the same SQL commands.
-let $wait_condition =
- SELECT COUNT(*) = 1 FROM information_schema.processlist
- WHERE info = 'TRUNCATE TABLE bug38231';
--- source include/wait_condition.inc
-let $wait_condition =
- SELECT COUNT(*) = 2 FROM information_schema.processlist
- WHERE info = 'LOCK TABLE bug38231 WRITE';
--- source include/wait_condition.inc
-# the above enables query log, re-disable it
--- disable_query_log
-
-# this crashes the server if the bug is present
-UNLOCK TABLES;
-
-# clean up
-
--- connection con2
--- reap
-UNLOCK TABLES;
-
--- connection con3
--- reap
-UNLOCK TABLES;
-
--- connection default
--- reap
-
--- disconnect con1
--- disconnect con2
--- disconnect con3
-
-# test that TRUNCATE works with with row-level locks
-
--- enable_query_log
--- enable_result_log
-
-INSERT INTO bug38231 VALUES (1), (10), (300);
-
--- connect (con4,localhost,root,,)
-
--- connection con4
-SET autocommit=0;
-SELECT * FROM bug38231 FOR UPDATE;
-
--- connection default
-TRUNCATE TABLE bug38231;
-
--- connection con4
-COMMIT;
-
--- connection default
-
--- disconnect con4
-
-DROP TABLE bug38231;