diff --git a/mysql-test/suite/rpl/t/rpl_parallel.test b/mysql-test/suite/rpl/t/rpl_parallel.test index 5a58b9d0f50..5748218dc10 100644 --- a/mysql-test/suite/rpl/t/rpl_parallel.test +++ b/mysql-test/suite/rpl/t/rpl_parallel.test @@ -20,7 +20,24 @@ eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT, master_user='root', master_use_gtid=current_pos; --connection s1 +SET gtid_domain_id=0; INSERT INTO t1 VALUES (1); +SET gtid_domain_id=1; +INSERT INTO t1 VALUES (2); +SET gtid_domain_id=2; +INSERT INTO t1 VALUES (3); +SET gtid_domain_id=0; +INSERT INTO t1 VALUES (4); +SET gtid_domain_id=1; +INSERT INTO t1 VALUES (5); +SET gtid_domain_id=2; +INSERT INTO t1 VALUES (6); +SET gtid_domain_id=0; +INSERT INTO t1 VALUES (7); +SET gtid_domain_id=1; +INSERT INTO t1 VALUES (8); +SET gtid_domain_id=2; +INSERT INTO t1 VALUES (9); --connection s2 query_vertical SHOW SLAVE STATUS; diff --git a/sql/rpl_parallel.cc b/sql/rpl_parallel.cc index 65ae2b87179..f1ac7e83071 100644 --- a/sql/rpl_parallel.cc +++ b/sql/rpl_parallel.cc @@ -132,9 +132,9 @@ handle_rpl_parallel_thread(void *arg) mysql_mutex_lock(&rpt->pool->LOCK_rpl_thread_pool); list= rpt->pool->free_list; rpt->next= list; - rpt->pool->free_list= list; + rpt->pool->free_list= rpt; if (!list) - mysql_cond_signal(&rpt->pool->COND_rpl_thread_pool); + mysql_cond_broadcast(&rpt->pool->COND_rpl_thread_pool); mysql_mutex_unlock(&rpt->pool->LOCK_rpl_thread_pool); rpt->free= true; }