summaryrefslogtreecommitdiff
path: root/mysql-test/suite
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2019-10-15 20:26:40 +0300
committerMonty <monty@mariadb.org>2019-10-15 20:26:40 +0300
commit7952f7720f967b43873e4fac13583984803fae3b (patch)
treef18df36d0df0f3d800d27b3e0453f71d6d228bc7 /mysql-test/suite
parent4d14785546022ea8dc4e249e0b57b55328a12876 (diff)
downloadmariadb-git-7952f7720f967b43873e4fac13583984803fae3b.tar.gz
MDEV-10748 Server crashes in ha_maria::implicit_commit
Problem was in a combination of LOCK TABLES on several Aria tables followed by an ALTER TABLE. After the ALTER TABLE there was a force close + reopen of the alter table. The close failed because the table was still part of a transaction. Fixed by calling extra(HA_EXTRA_PREPARE_FOR_FORCED_CLOSE) as part of closing the table, which ensures that the table is not anymore part of the current transaction.
Diffstat (limited to 'mysql-test/suite')
-rw-r--r--mysql-test/suite/maria/lock.result12
-rw-r--r--mysql-test/suite/maria/lock.test17
2 files changed, 29 insertions, 0 deletions
diff --git a/mysql-test/suite/maria/lock.result b/mysql-test/suite/maria/lock.result
index b7d5a9c220d..a1f533e80fb 100644
--- a/mysql-test/suite/maria/lock.result
+++ b/mysql-test/suite/maria/lock.result
@@ -109,4 +109,16 @@ ALTER TABLE t1 ADD UNIQUE KEY (f1);
ERROR 23000: Duplicate entry 'foo' for key 'f1'
ALTER TABLE t1 ADD KEY (f2);
DROP TABLE t1;
+#
+# MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE
+#
+CREATE TABLE t1 (a INT, b INT) ENGINE=Aria;
+SELECT * FROM t1;
+a b
+CREATE TABLE t2 (c INT) ENGINE=Aria;
+LOCK TABLE t2 READ, t1 WRITE;
+ALTER TABLE t1 CHANGE b a INT;
+ERROR 42S21: Duplicate column name 'a'
+UNLOCK TABLES;
+DROP TABLE t1, t2;
# End of 10.2 tests
diff --git a/mysql-test/suite/maria/lock.test b/mysql-test/suite/maria/lock.test
index b22c9cc70d7..220e3839010 100644
--- a/mysql-test/suite/maria/lock.test
+++ b/mysql-test/suite/maria/lock.test
@@ -118,4 +118,21 @@ ALTER TABLE t1 ADD UNIQUE KEY (f1);
ALTER TABLE t1 ADD KEY (f2);
DROP TABLE t1;
+
+--echo #
+--echo # MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE
+--echo #
+
+CREATE TABLE t1 (a INT, b INT) ENGINE=Aria;
+SELECT * FROM t1;
+CREATE TABLE t2 (c INT) ENGINE=Aria;
+
+LOCK TABLE t2 READ, t1 WRITE;
+--error ER_DUP_FIELDNAME
+ALTER TABLE t1 CHANGE b a INT;
+
+# Cleanup
+UNLOCK TABLES;
+DROP TABLE t1, t2;
+
--echo # End of 10.2 tests