From 9c96fde1206f254d0dd25dbe2cc1706c44e4bdea Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Thu, 15 Jan 2009 22:27:36 +0100 Subject: post-review fixes include/atomic/generic-msvc.h: prevent possible compiler warnings include/lf.h: comments, better definition for LF_HASH_OVERHEAD include/maria.h: define MARIA_CANNOT_ROLLBACK here include/my_pthread.h: avoid possible name clash include/waiting_threads.h: comments, const, move WT_RESOURCE to waiting_threads.c mysql-test/suite/maria/r/maria_notembedded.result: new test mysql-test/suite/maria/t/maria_notembedded.test: new test - 5-way deadlock mysys/lf_hash.c: better definition for LF_HASH_OVERHEAD mysys/my_static.c: comment mysys/my_thr_init.c: casts mysys/waiting_threads.c: comments, asserts, etc server-tools/instance-manager/parse.cc: fix my_init_dynamic_array() to follow new calling conventions sql/mysqld.cc: call wt_init after set_proper_floating_point_mode sql/sql_class.h: comment storage/maria/ha_maria.cc: move MARIA_CANNOT_ROLLBACK to a common header storage/maria/ma_commit.c: comment storage/maria/ma_write.c: comments, check for HA_ERR_FOUND_DUPP_KEY storage/maria/trnman.c: comments, assert storage/maria/trnman.h: comments storage/maria/unittest/trnman-t.c: be paranoid unittest/mysys/lf-t.c: comments unittest/mysys/waiting_threads-t.c: comments, safety, memory leak --- mysql-test/suite/maria/r/maria_notembedded.result | 15 ++++++++ mysql-test/suite/maria/t/maria_notembedded.test | 45 +++++++++++++++++++++-- 2 files changed, 56 insertions(+), 4 deletions(-) (limited to 'mysql-test/suite/maria') diff --git a/mysql-test/suite/maria/r/maria_notembedded.result b/mysql-test/suite/maria/r/maria_notembedded.result index 1adede35511..cc9c26409ec 100644 --- a/mysql-test/suite/maria/r/maria_notembedded.result +++ b/mysql-test/suite/maria/r/maria_notembedded.result @@ -30,9 +30,24 @@ insert t1 values (2); lock table t1 write concurrent; insert t1 values (3); insert t1 values (2); +lock table t1 write concurrent; +insert t1 values (4); insert t1 values (3); +lock table t1 write concurrent; +insert t1 values (5); +insert t1 values (4); +lock table t1 write concurrent; +insert t1 values (6); +insert t1 values (5); +insert t1 values (6); ERROR 40001: Deadlock found when trying to get lock; try restarting transaction unlock tables; ERROR 23000: Duplicate entry '2' for key 'a' unlock tables; +ERROR 23000: Duplicate entry '3' for key 'a' +unlock tables; +ERROR 23000: Duplicate entry '4' for key 'a' +unlock tables; +ERROR 23000: Duplicate entry '5' for key 'a' +unlock tables; drop table t1; diff --git a/mysql-test/suite/maria/t/maria_notembedded.test b/mysql-test/suite/maria/t/maria_notembedded.test index f6d256f0f80..afa749a653d 100644 --- a/mysql-test/suite/maria/t/maria_notembedded.test +++ b/mysql-test/suite/maria/t/maria_notembedded.test @@ -33,27 +33,64 @@ drop table t1; # create table t1 (a int unique) transactional=1; insert t1 values (1); + lock table t1 write concurrent; insert t1 values (2); -connect(con_d,localhost,root,,); + +connect(con_a,localhost,root,,); lock table t1 write concurrent; insert t1 values (3); send insert t1 values (2); + +connect(con_b,localhost,root,,); +lock table t1 write concurrent; +insert t1 values (4); +send insert t1 values (3); + +connect(con_c,localhost,root,,); +lock table t1 write concurrent; +insert t1 values (5); +send insert t1 values (4); + +connect(con_d,localhost,root,,); +lock table t1 write concurrent; +insert t1 values (6); +send insert t1 values (5); + connection default; -let $wait_condition=select count(*) = 1 from information_schema.processlist where state="waiting for a resource"; +let $wait_condition=select count(*) = 4 from information_schema.processlist where state="waiting for a resource"; --source include/wait_condition.inc --error ER_LOCK_DEADLOCK -insert t1 values (3); +insert t1 values (6); unlock tables; + +connection con_a; +--error ER_DUP_ENTRY +reap; +unlock tables; +disconnect con_a; + +connection con_b; +--error ER_DUP_ENTRY +reap; +unlock tables; +disconnect con_b; + +connection con_c; +--error ER_DUP_ENTRY +reap; +unlock tables; +disconnect con_c; + connection con_d; --error ER_DUP_ENTRY reap; unlock tables; disconnect con_d; + connection default; drop table t1; - --disable_result_log --disable_query_log eval set session storage_engine=$default_engine; -- cgit v1.2.1