summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Widenius <monty@mariadb.org>2014-03-10 14:08:12 +0200
committerMichael Widenius <monty@mariadb.org>2014-03-10 14:08:12 +0200
commitb07f9f72dc131acad58fb20a188c5014312f6849 (patch)
tree01fc02926001de4761fa335d687248ba92b70a2f
parent5b7cab82195268f7657504d0b53995654748cefa (diff)
downloadmariadb-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.h4
-rw-r--r--mysql-test/r/create-big.result4
-rw-r--r--mysql-test/t/create-big.test13
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;