[MXS-2422] Slave replication gap on binlog router failover to secondary master Created: 2019-04-04 Updated: 2019-09-04 Resolved: 2019-09-04 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | binlogrouter |
| Affects Version/s: | 2.3.4 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Hartmut Holzgraefe | Assignee: | Johan Wikman |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Sprint: | MXS-SPRINT-80, MXS-SPRINT-81 |
| Description |
|
My replication setup is as follows:
The two Galera nodes are configured as:
Second node only differs by wsrep_node_address and wsrep_node_name. The binlog router is configured like this:
The two nodes are set up as primary and secondary master like this:
I issue the following statements on node-1 and node-2:
The slave now also has table t1 with two rows in it. Now I stop the mariadb process on node-1, and check on the maxscale node that binlog router replication has indeed switched over to node-2. Next I insert one more row on node-2:
SHOW SLAVE STATUS on the slave shows that IO and SQL threads are still running, but row '3' does not show up. I do a "STOP SLAVE; START SLAVE;" on the slave, but row '3' is still missing. Now I insert a row '4' on node-2. This row gets replicated again, but the test table on the slave only shows rows '1' |
| Comments |
| Comment by Johan Wikman [ 2019-04-17 ] |
|
I tried to repeat this as closely as possible, but did not get the described behaviour. Do you consistently experience that, or only occasionally? I did notice another problem though. When I took the node acting as the primary master down (node1) and while it was down inserted data into the node acting as secondary master (node2), then when I took node1 up, the data was syncronized (select * from t1 returns the same results on both), but the binlog events generated in node2 did not end up in the binlog of node1. That is, if MaxScale for some reason has switched back from the secondary master (i.e. node2) to the primary master when the real slave connects to it, then the real slave will not receive the events that were generated when node1 was down. |
| Comment by Johan Wikman [ 2019-09-04 ] |
|
Current binlog router will be deprecated and replaced with new functionality in 2.5. See also: https://galeracluster.com/library/documentation/galera-parameters.html#gmcast-segment |