diff options
| author | Monty <monty@mariadb.org> | 2018-03-29 14:16:35 +0300 |
|---|---|---|
| committer | Monty <monty@mariadb.org> | 2018-03-29 14:20:11 +0300 |
| commit | 4277c173a9815b2c2f9a53039100ad86406003e7 (patch) | |
| tree | 4bbe62d4ec70cba0eab7063b454eead57a96e75d /mysql-test/suite/sql_sequence | |
| parent | cd93eeeb1dd2b86ed5111bf16eedee90690e387d (diff) | |
| download | mariadb-git-4277c173a9815b2c2f9a53039100ad86406003e7.tar.gz | |
MDEV-15149 Assert upon concurrent creating / querying sequences
MDEV-15117 Server crashes in in open_and_process_table or ASAN
heap-use-after-free in is_temporary_table upon creating/flushing
sequences.
Problem was that sequence_insert closed and reopened the like table
without proper locking. Fixed by ensuring that the like table is
not reopened in sequence_insert
Diffstat (limited to 'mysql-test/suite/sql_sequence')
| -rw-r--r-- | mysql-test/suite/sql_sequence/concurrent_create.result | 9 | ||||
| -rw-r--r-- | mysql-test/suite/sql_sequence/concurrent_create.test | 18 |
2 files changed, 27 insertions, 0 deletions
diff --git a/mysql-test/suite/sql_sequence/concurrent_create.result b/mysql-test/suite/sql_sequence/concurrent_create.result index 5c9ef71d4fe..7e68195f7e0 100644 --- a/mysql-test/suite/sql_sequence/concurrent_create.result +++ b/mysql-test/suite/sql_sequence/concurrent_create.result @@ -22,3 +22,12 @@ select * from s2; next_not_cached_value minimum_value maximum_value start_value increment cache_size cycle_option cycle_count 1 1 9223372036854775806 1 1 1000 0 0 DROP SEQUENCE s1, s2; +CREATE SEQUENCE s1 ENGINE=InnoDB; +connect con1,localhost,root,,test; +CREATE TABLE s2 LIKE s1;; +connection default; +FLUSH TABLES; +connection con1; +disconnect con1; +connection default; +DROP TABLE s1,s2; diff --git a/mysql-test/suite/sql_sequence/concurrent_create.test b/mysql-test/suite/sql_sequence/concurrent_create.test index 699214a241f..d6a57ff7d50 100644 --- a/mysql-test/suite/sql_sequence/concurrent_create.test +++ b/mysql-test/suite/sql_sequence/concurrent_create.test @@ -38,3 +38,21 @@ execute stmt; select * from s2; DROP SEQUENCE s1, s2; +# +# MDEV-15117 Server crashes in in open_and_process_table or ASAN +# heap-use-after-free in is_temporary_table upon creating/flushing sequences +# + +CREATE SEQUENCE s1 ENGINE=InnoDB; +--connect (con1,localhost,root,,test) +--send CREATE TABLE s2 LIKE s1; +--connection default +FLUSH TABLES; + +# Cleanup +--connection con1 +--reap +--disconnect con1 +--connection default + +DROP TABLE s1,s2; |
