Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-20428: "Start binlog_dump" message doesn't indicate GTID position
Problem: ======= The "Start binlog_dump" message hasn't been updated to include the slave's requested GTID position: 20:05:05 139836760311552 [Note] Start binlog_dump to slave_server(2), pos(, 4) For diagnostic purposes, it would be helpful if the GTID position were included. Fix: === Imporve "Start binlog_dump" print message to include "using_gtid" and "GTID position" requested by slave. Ex: [Note] Start binlog_dump to slave_server(2), pos(, 4), using_gtid(1), gtid('1-1-201,2-2-100') [Note] Start binlog_dump to slave_server(3), pos('mariadb-bin.004142', 507988273), using_gtid(0), gtid('')
- Loading branch information
Showing
3 changed files
with
161 additions
and
2 deletions.
There are no files selected for viewing
34 changes: 34 additions & 0 deletions
34
mysql-test/suite/rpl/r/rpl_binlog_dump_slave_gtid_state_info.result
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
include/master-slave.inc | ||
[connection master] | ||
SET GLOBAL LOG_WARNINGS=2; | ||
include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=current_pos; | ||
include/start_slave.inc | ||
"Test Case 1: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(1), gtid('')" | ||
FOUND /using_gtid\(1\), gtid\(\'\'\)/ in mysqld.1.err | ||
include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=no; | ||
include/start_slave.inc | ||
"Test Case 2: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(0), gtid('')" | ||
FOUND /using_gtid\(0\), gtid\(\'\'\)/ in mysqld.1.err | ||
CREATE TABLE t (f INT) ENGINE=INNODB; | ||
INSERT INTO t VALUES(10); | ||
include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=slave_pos; | ||
include/start_slave.inc | ||
"Test Case 3: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(1), gtid('0-1-2')" | ||
FOUND /using_gtid\(1\), gtid\(\'0-1-2\'\)/ in mysqld.1.err | ||
SET @@SESSION.gtid_domain_id=10; | ||
INSERT INTO t VALUES(20); | ||
include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=slave_pos; | ||
include/start_slave.inc | ||
"Test Case 4: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(1), gtid('0-1-2,10-1-1')" | ||
FOUND /using_gtid\(1\), gtid\(\'0-1-2,10-1-1\'\)/ in mysqld.1.err | ||
"===== Clean up =====" | ||
include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=no; | ||
include/start_slave.inc | ||
DROP TABLE t; | ||
SET GLOBAL LOG_WARNINGS=default; | ||
include/rpl_end.inc |
121 changes: 121 additions & 0 deletions
121
mysql-test/suite/rpl/t/rpl_binlog_dump_slave_gtid_state_info.test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# ==== Purpose ==== | ||
# | ||
# Test verifies that Start binlog_dump message will report GTID position | ||
# requested by slave when log_warnings > 1. | ||
# | ||
# ==== Implementation ==== | ||
# | ||
# Steps: | ||
# 0 - Have LOG_WARNINGS=2 | ||
# 1 - On a fresh slave server which has not replicated any GTIDs execute | ||
# "CHANGE MASTER TO MASTER_USE_GTID=current_pos;" command. Start the | ||
# slave. | ||
# 2 - In Master error log verify that pattern "using_gtid(1), gtid('')" is | ||
# present. | ||
# 3 - On slave server do STOP SLAVE and execute "CHANGE MASTER TO | ||
# MASTER_USE_GTID=no;" command. Start the slave threads. | ||
# 4 - In Master error log verify that pattern "using_gtid(0), gtid('')" is | ||
# present. | ||
# 5- Execute a DDL and DML on master server. This will generated two GTIDs | ||
# on the master server ('0-1-2'). Sync the slave server with master. | ||
# 6 - On slave do STOP SLAVE and execute "CHANGE MASTER TO | ||
# MASTER_USE_GTID=slave_pos;" command. Start slave threads. | ||
# 7 - In Master error verify that pattern "using_gtid(1), gtid('0-1-2')" is | ||
# present. | ||
# 8 - On Master change domain ID to 10 and execute a DML operation. It will | ||
# generate a GTID 10-1-1. | ||
# 9 - On slave do STOP SLAVE and execute "CHANGE MASTER TO | ||
# MASTER_USE_GTID=slave_pos;" command. Start slave threads. | ||
# 10 -In Master error verify that pattern "using_gtid(1), | ||
# gtid('0-1-2,10-1-1')" is present. | ||
# | ||
# ==== References ==== | ||
# | ||
# MDEV-20428: "Start binlog_dump" message doesn't indicate GTID position | ||
# | ||
|
||
--source include/have_binlog_format_mixed.inc | ||
--source include/have_innodb.inc | ||
--source include/master-slave.inc | ||
|
||
--connection master | ||
SET GLOBAL LOG_WARNINGS=2; | ||
|
||
--connection slave | ||
--source include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=current_pos; | ||
--source include/start_slave.inc | ||
|
||
--connection master | ||
# Check error log for correct messages. | ||
let $log_error_= `SELECT @@GLOBAL.log_error`; | ||
if(!$log_error_) | ||
{ | ||
# MySQL Server on windows is started with --console and thus | ||
# does not know the location of its .err log, use default location | ||
let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err; | ||
} | ||
--echo "Test Case 1: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(1), gtid('')" | ||
--let SEARCH_FILE=$log_error_ | ||
--let SEARCH_RANGE=-50000 | ||
--let SEARCH_PATTERN=using_gtid\(1\), gtid\(\'\'\) | ||
--source include/search_pattern_in_file.inc | ||
|
||
--connection slave | ||
--source include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=no; | ||
--source include/start_slave.inc | ||
|
||
--connection master | ||
--echo "Test Case 2: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(0), gtid('')" | ||
--let SEARCH_FILE=$log_error_ | ||
--let SEARCH_RANGE=-50000 | ||
--let SEARCH_PATTERN=using_gtid\(0\), gtid\(\'\'\) | ||
--source include/search_pattern_in_file.inc | ||
CREATE TABLE t (f INT) ENGINE=INNODB; | ||
INSERT INTO t VALUES(10); | ||
save_master_pos; | ||
|
||
--connection slave | ||
sync_with_master; | ||
|
||
--connection slave | ||
--source include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=slave_pos; | ||
--source include/start_slave.inc | ||
|
||
--connection master | ||
--echo "Test Case 3: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(1), gtid('0-1-2')" | ||
--let SEARCH_FILE=$log_error_ | ||
--let SEARCH_RANGE=-50000 | ||
--let SEARCH_PATTERN=using_gtid\(1\), gtid\(\'0-1-2\'\) | ||
--source include/search_pattern_in_file.inc | ||
SET @@SESSION.gtid_domain_id=10; | ||
INSERT INTO t VALUES(20); | ||
save_master_pos; | ||
|
||
--connection slave | ||
sync_with_master; | ||
|
||
--connection slave | ||
--source include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=slave_pos; | ||
--source include/start_slave.inc | ||
|
||
--connection master | ||
--echo "Test Case 4: Start binlog_dump to slave_server(#), pos(master-bin.000001, ###), using_gtid(1), gtid('0-1-2,10-1-1')" | ||
--let SEARCH_FILE=$log_error_ | ||
--let SEARCH_RANGE=-50000 | ||
--let SEARCH_PATTERN=using_gtid\(1\), gtid\(\'0-1-2,10-1-1\'\) | ||
--source include/search_pattern_in_file.inc | ||
|
||
--echo "===== Clean up =====" | ||
--connection slave | ||
--source include/stop_slave.inc | ||
CHANGE MASTER TO MASTER_USE_GTID=no; | ||
--source include/start_slave.inc | ||
|
||
--connection master | ||
DROP TABLE t; | ||
SET GLOBAL LOG_WARNINGS=default; | ||
--source include/rpl_end.inc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters