diff options
author | unknown <knielsen@knielsen-hq.org> | 2014-02-08 01:16:45 +0100 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2014-02-08 01:16:45 +0100 |
commit | 3c97d24f74b8bfb72746b0a32a78193f20665c44 (patch) | |
tree | 4dc59c2039b202c2124ec9a7241ecae2a7144c33 | |
parent | 7bb022f3cf1971c90295ed882712ed84079bda20 (diff) | |
download | mariadb-git-3c97d24f74b8bfb72746b0a32a78193f20665c44.tar.gz |
MDEV-4984: Implement MASTER_GTID_WAIT() and @@LAST_GTID.
Couple of small fixes following buildbot testing.
-rw-r--r-- | mysql-test/include/sync_with_master_gtid.inc | 3 | ||||
-rw-r--r-- | mysql-test/suite/rpl/r/rpl_gtid_basic.result | 10 | ||||
-rw-r--r-- | mysql-test/suite/rpl/t/rpl_gtid_basic.test | 4 | ||||
-rw-r--r-- | mysql-test/suite/sys_vars/t/last_gtid_basic.test | 2 | ||||
-rw-r--r-- | sql/rpl_gtid.cc | 10 |
5 files changed, 17 insertions, 12 deletions
diff --git a/mysql-test/include/sync_with_master_gtid.inc b/mysql-test/include/sync_with_master_gtid.inc index 7512c045c6b..97ada8eea29 100644 --- a/mysql-test/include/sync_with_master_gtid.inc +++ b/mysql-test/include/sync_with_master_gtid.inc @@ -40,7 +40,8 @@ if (!$_slave_timeout) if ($_result == -1) { --let $_current_gtid_pos= `SELECT @@GLOBAL.gtid_slave_pos` - --die Timeout in master_gtid_wait('$master_pos', $_slave_timeout), current slave GTID position is: $_current_gtid_pos. + --echo Timeout in master_gtid_wait('$master_pos', $_slave_timeout), current slave GTID position is: $_current_gtid_pos. + --die Failed to sync with master } --let $include_filename= sync_with_master_gtid.inc diff --git a/mysql-test/suite/rpl/r/rpl_gtid_basic.result b/mysql-test/suite/rpl/r/rpl_gtid_basic.result index 49891e1abd3..6467b114884 100644 --- a/mysql-test/suite/rpl/r/rpl_gtid_basic.result +++ b/mysql-test/suite/rpl/r/rpl_gtid_basic.result @@ -272,7 +272,7 @@ SELECT master_gtid_wait('2-1-1,1-1-4,0-1-110'); SELECT master_gtid_wait('0-1-1000', 0.5); SELECT master_gtid_wait('0-1-2000'); SELECT master_gtid_wait('2-1-10'); -SELECT master_gtid_wait('2-1-5', 1); +SELECT master_gtid_wait('2-1-6', 1); SELECT master_gtid_wait('2-1-5'); SELECT master_gtid_wait('2-1-10'); SELECT master_gtid_wait('2-1-5,1-1-4,0-1-110'); @@ -284,14 +284,14 @@ SELECT master_gtid_wait('0-1-109'); SELECT master_gtid_wait('2-1-2', 0.5); master_gtid_wait('2-1-2', 0.5) -1 -KILL QUERY 22; +KILL QUERY KILL_ID; ERROR 70100: Query execution was interrupted SET gtid_domain_id=2; SET gtid_seq_no=2; INSERT INTO t1 VALUES (4); master_gtid_wait('2-1-2') 0 -KILL CONNECTION 25; +KILL CONNECTION KILL_ID; ERROR HY000: Lost connection to MySQL server during query SET gtid_domain_id=1; SET gtid_seq_no=4; @@ -305,8 +305,8 @@ master_gtid_wait('2-1-1,1-1-4,0-1-110') 0 master_gtid_wait('0-1-1000', 0.5) -1 -master_gtid_wait('2-1-5', 1) -0 +master_gtid_wait('2-1-6', 1) +-1 master_gtid_wait('0-1-109') 0 SET gtid_domain_id=2; diff --git a/mysql-test/suite/rpl/t/rpl_gtid_basic.test b/mysql-test/suite/rpl/t/rpl_gtid_basic.test index b8453766195..85dd2a6c0a4 100644 --- a/mysql-test/suite/rpl/t/rpl_gtid_basic.test +++ b/mysql-test/suite/rpl/t/rpl_gtid_basic.test @@ -287,7 +287,7 @@ send SELECT master_gtid_wait('0-1-2000'); send SELECT master_gtid_wait('2-1-10'); --connect (s5,127.0.0.1,root,,test,$SERVER_MYPORT_2,) -send SELECT master_gtid_wait('2-1-5', 1); +send SELECT master_gtid_wait('2-1-6', 1); # This one we will kill also. --connect (s6,127.0.0.1,root,,test,$SERVER_MYPORT_2,) @@ -314,6 +314,7 @@ send SELECT master_gtid_wait('0-1-109'); # This one should time out. SELECT master_gtid_wait('2-1-2', 0.5); +--replace_result $kill1_id KILL_ID eval KILL QUERY $kill1_id; --connection s3 --error ER_QUERY_INTERRUPTED @@ -328,6 +329,7 @@ INSERT INTO t1 VALUES (4); reap; --connection server_2 +--replace_result $kill2_id KILL_ID eval KILL CONNECTION $kill2_id; --connection s6 diff --git a/mysql-test/suite/sys_vars/t/last_gtid_basic.test b/mysql-test/suite/sys_vars/t/last_gtid_basic.test index d1cd05f2c30..85fbf079bfb 100644 --- a/mysql-test/suite/sys_vars/t/last_gtid_basic.test +++ b/mysql-test/suite/sys_vars/t/last_gtid_basic.test @@ -1,3 +1,5 @@ +--source include/not_embedded.inc + --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@global.last_gtid; diff --git a/sql/rpl_gtid.cc b/sql/rpl_gtid.cc index 00140fd3475..2f2254d53af 100644 --- a/sql/rpl_gtid.cc +++ b/sql/rpl_gtid.cc @@ -1792,7 +1792,7 @@ gtid_waiting::wait_for_gtid(THD *thd, rpl_gtid *wait_gtid, bool timed_out= false; #ifdef HAVE_REPLICATION queue_element elem; - uint32_t domain_id= wait_gtid->domain_id; + uint32 domain_id= wait_gtid->domain_id; uint64 seq_no= wait_gtid->seq_no; hash_element *he; rpl_slave_state::element *slave_state_elem= NULL; @@ -1958,10 +1958,6 @@ gtid_waiting::wait_for_gtid(THD *thd, rpl_gtid *wait_gtid, thd_wait_end(thd); } - if (elem.wakeup_reason == queue_element::DONE) - break; - takeover= true; - if (thd->killed || timed_out) { remove_from_wait_hash(he, &elem); @@ -1975,6 +1971,10 @@ gtid_waiting::wait_for_gtid(THD *thd, rpl_gtid *wait_gtid, thd->send_kill_message(); break; } + + if (elem.wakeup_reason == queue_element::DONE) + break; + takeover= true; } if (did_enter_cond) |