Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.9
-
None
Description
It appears that Exec_master_log_pos is not correctly updated after a log
rotate when parallel replication is used.
Here is a test case:
--let $rpl_topology=1->2
|
--source include/rpl_init.inc
|
|
--connection server_2
|
SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads;
|
--source include/stop_slave.inc
|
SET GLOBAL slave_parallel_threads=1;
|
--source include/start_slave.inc
|
|
--connection server_1
|
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
|
INSERT INTO t1 VALUES (1,1);
|
INSERT INTO t1 VALUES (2,2), (3,8);
|
INSERT INTO t1 VALUES (4,16);
|
--save_master_pos
|
|
--connection server_2
|
--sync_with_master
|
--let $status_items= Master_Log_File,Read_Master_Log_Pos,Relay_Log_File,Relay_Log_Pos,Relay_Master_Log_File,Exec_Master_Log_Pos
|
--source include/show_slave_status.inc
|
|
--connection server_1
|
FLUSH LOGS;
|
--save_master_pos
|
|
--connection server_2
|
--sync_with_master
|
# exec_master_log_pos is not updated here by the format description event execution
|
--source include/show_slave_status.inc
|
|
--connection server_1
|
UPDATE t1 SET b=b*b;
|
--save_master_pos
|
|
--connection server_2
|
--sync_with_master
|
# it's not even updated with the UPDATE statement.
|
--source include/show_slave_status.inc
|
|
|
--connection server_2
|
--source include/stop_slave.inc
|
SET GLOBAL slave_parallel_threads=@old_parallel_threads;
|
--source include/start_slave.inc
|
|
--connection server_1
|
DROP TABLE t1;
|
|
--source include/rpl_end.inc
|