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.
This commit is contained in:
parent
5b7cab8219
commit
b07f9f72dc
@ -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
|
||||
)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user