diff options
author | Michael Widenius <monty@mariadb.org> | 2014-03-10 14:08:12 +0200 |
---|---|---|
committer | Michael Widenius <monty@mariadb.org> | 2014-03-10 14:08:12 +0200 |
commit | b07f9f72dc131acad58fb20a188c5014312f6849 (patch) | |
tree | 01fc02926001de4761fa335d687248ba92b70a2f | |
parent | 5b7cab82195268f7657504d0b53995654748cefa (diff) | |
download | mariadb-git-b07f9f72dc131acad58fb20a188c5014312f6849.tar.gz |
Fixed MDEV-5780 "create-big fails in 10.0"
The issue was that create...trigger part of the test suite used a debug_sync point that before was never triggered (in other words, wrong meaningless test).
With the new create ... replace code the debug sync point is triggered and the test case could not handled that.
I fixed this by adding a wait and go for the debug syncpoint in the test.
Removed some compiler warnings from mysql_cond_timedwait
include/mysql/psi/mysql_thread.h:
Removed compiler warnings
mysql-test/r/create-big.result:
New test result
mysql-test/t/create-big.test:
Fixed test case as create_table_select_before_check_if_exists was not before triggered by the code.
-rw-r--r-- | include/mysql/psi/mysql_thread.h | 4 | ||||
-rw-r--r-- | mysql-test/r/create-big.result | 4 | ||||
-rw-r--r-- | mysql-test/t/create-big.test | 13 |
3 files changed, 17 insertions, 4 deletions
diff --git a/include/mysql/psi/mysql_thread.h b/include/mysql/psi/mysql_thread.h index a0682aae4c6..08dfeac37f1 100644 --- a/include/mysql/psi/mysql_thread.h +++ b/include/mysql/psi/mysql_thread.h @@ -518,7 +518,7 @@ typedef struct st_mysql_cond mysql_cond_t; @c mysql_cond_timedwait is a drop-in replacement for @c pthread_cond_timedwait. */ -#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX) +#ifdef HAVE_PSI_COND_INTERFACE #define mysql_cond_timedwait(C, M, W) \ inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__) #else @@ -1171,7 +1171,7 @@ static inline int inline_mysql_cond_timedwait( mysql_cond_t *that, mysql_mutex_t *mutex, const struct timespec *abstime -#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX) +#ifdef HAVE_PSI_COND_INTERFACE , const char *src_file, uint src_line #endif ) diff --git a/mysql-test/r/create-big.result b/mysql-test/r/create-big.result index c47aecd7174..5aa44c2941d 100644 --- a/mysql-test/r/create-big.result +++ b/mysql-test/r/create-big.result @@ -161,7 +161,9 @@ create table t1 (i int); set @a:=0; set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go'; create table if not exists t1 select 1 as i;; -create trigger t1_bi before insert on t1 for each row set @a:=1; +set debug_sync='now WAIT_FOR parked'; +create trigger t1_bi before insert on t1 for each row set @a:=1;; +set debug_sync='now SIGNAL go'; Warnings: Note 1050 Table 't1' already exists select @a; diff --git a/mysql-test/t/create-big.test b/mysql-test/t/create-big.test index 8d916f8da82..7f20a8b42af 100644 --- a/mysql-test/t/create-big.test +++ b/mysql-test/t/create-big.test @@ -420,9 +420,20 @@ set @a:=0; set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go'; --send create table if not exists t1 select 1 as i; connection addconroot1; -create trigger t1_bi before insert on t1 for each row set @a:=1; +set debug_sync='now WAIT_FOR parked'; +--send create trigger t1_bi before insert on t1 for each row set @a:=1; +connection addconroot2; +# Wait until the above DROP TABLE is blocked due to CREATE TABLE +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table metadata lock" and + info like "create trigger%"; +--source include/wait_condition.inc +set debug_sync='now SIGNAL go'; connection default; --reap +connection addconroot1; +--reap connection default; select @a; select * from t1; |