diff options
author | unknown <monty@hundin.mysql.fi> | 2001-11-26 02:16:38 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-11-26 02:16:38 +0200 |
commit | 4615e50093d635f07f2940bb9fbe7e1c327b8ebb (patch) | |
tree | 1f8e0f608f035ad5906f6ea2dbbb3006ea2703bd /mysql-test/t/bdb-deadlock.test | |
parent | 7ef7d93726929ec678a8b07bed1be7bb56ad4b10 (diff) | |
download | mariadb-git-4615e50093d635f07f2940bb9fbe7e1c327b8ebb.tar.gz |
Fix race condition in ANALYZE TABLE.
Fixed bug where one got an empty set instead of a DEADLOCK error when using BDB tables.
Docs/manual.texi:
Cleanup
configure.in:
Version number change
mysql-test/t/backup.test:
drop used tables
mysql-test/t/bdb-crash.test:
cleanup
mysys/thr_lock.c:
cleanup
sql/mysqld.cc:
safety fix
sql/records.cc:
Fixed bug where one got an empty set instead of a DEADLOCK error when using
BDB tables.
sql/sql_table.cc:
Fix race condition in ANALYZE TABLE.
Diffstat (limited to 'mysql-test/t/bdb-deadlock.test')
-rw-r--r-- | mysql-test/t/bdb-deadlock.test | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/mysql-test/t/bdb-deadlock.test b/mysql-test/t/bdb-deadlock.test new file mode 100644 index 00000000000..b32b50c715b --- /dev/null +++ b/mysql-test/t/bdb-deadlock.test @@ -0,0 +1,48 @@ +# This test doesn't work with the embedded version as this code +# assumes that one query is running while we are doing queries on +# a second connection. +# This would work if mysqltest run would be threaded and handle each +# connection in a separate thread. +# + +#-- source include/not_embedded.inc +-- source include/have_bdb.inc + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); + +drop table if exists t1,t2; +connection con1; +create table t1 (id integer, x integer) type=BDB; +create table t2 (id integer, x integer) type=BDB; +insert into t1 values(0, 0); +insert into t2 values(0, 0); +set autocommit=0; +update t1 set x = 1 where id = 0; + +connection con2; +set autocommit=0; +update t2 set x = 1 where id = 0; + +# The following query should hang because con1 is locking the page +--send +select x from t1 where id = 0; + +connection con1; +# This should generate a deadlock as we are trying to access a locked row +--error 1213 +select x from t2 where id = 0; +commit; + +connection con2; +reap; +commit; +select * from t1; +select * from t2; +commit; + +connection con1; +select * from t1; +select * from t2; +commit; +drop table t1,t2; |