[MDEV-24234] gtid_strict_mode is not compatible with intermediate primary servers Created: 2020-11-17 Updated: 2023-04-27 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Replication |
| Affects Version/s: | 10.2.36, 10.3.27, 10.4.17, 10.5.8 |
| Fix Version/s: | 10.4, 10.5 |
| Type: | Bug | Priority: | Major |
| Reporter: | Geoff Montee (Inactive) | Assignee: | Brandon Nesterenko |
| Resolution: | Unresolved | Votes: | 2 |
| Labels: | gtid | ||
| Issue Links: |
|
||||||||
| Description |
|
As far as I can tell, gtid_strict_mode is not compatible with topologies that contain an intermediate primary server. Let's say that we have a topology like this:
Let's say that M1 has gtid_domain_id=5 and M2 has gtid_domain_id=0. When you want to set up replication from M2 to M1, you will run into an error when you try to set gtid_slave_pos on M2 if gtid_strict_mode is enabled:
This check occurs here: https://github.com/MariaDB/server/blob/mariadb-10.5.8/sql/sql_repl.cc#L4624 It may make sense for this scenario to trigger an error in a simple primary-replica topology. However, in topologies with an intermediate primary server, it does not make sense for this scenario to trigger an error. The intermediate primary server is expected to have domains that the other primary server does not have. Perhaps we need another variable to disable this check. For example, some options might be:
|
| Comments |
| Comment by Rick Pizzi [ 2022-07-06 ] |
|
This should be a warning, not an error. In most cases I don't really care that I have in the binlog a domain that isn't in the GTID list I'm setting. |