diff options
author | Andrei <andrei.elkin@mariadb.com> | 2022-06-30 15:46:19 +0300 |
---|---|---|
committer | Andrei <andrei.elkin@mariadb.com> | 2022-07-26 16:01:14 +0300 |
commit | 8d238d47268bcd7470abed147d79eb9546b28ac4 (patch) | |
tree | dad53b0525dbd2f91aed017dbb25bb32e9e91f94 /sql/rpl_mi.cc | |
parent | 552919d041c474d967701673c869edcc49081f84 (diff) | |
download | mariadb-git-8d238d47268bcd7470abed147d79eb9546b28ac4.tar.gz |
MDEV-28609 refine gtid-strict-mode to ignore same server-id gtid from the past
... on semisync slave
To provide semisync master crash-recovery the same server-id transactions
were made to accept for execution on the semisync slave when the strict gtid
mode (see MDEV-27760).
That however caused out-of-order error on a master's transaction
server of the circular setup.
The error was fair in the sense of the gtid strict mode rule as indeed
under the condition of the circular setup the replicated transaction
already exists in the local binlog.
This is fixed by the commit to ignore on the gtid strict mode semisync
slave those gtids that exist in the slave's binlog that effectively restores
the default same-server-id ignore policy.
At the same time the fixes complies with MDEV-21117 semisync slave recovery
to accept the same server-id transactions that do not exist in local binlog.
Diffstat (limited to 'sql/rpl_mi.cc')
-rw-r--r-- | sql/rpl_mi.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/rpl_mi.cc b/sql/rpl_mi.cc index cdd56976549..8322bcd3042 100644 --- a/sql/rpl_mi.cc +++ b/sql/rpl_mi.cc @@ -43,7 +43,8 @@ Master_info::Master_info(LEX_CSTRING *connection_name_arg, gtid_reconnect_event_skip_count(0), gtid_event_seen(false), in_start_all_slaves(0), in_stop_all_slaves(0), in_flush_all_relay_logs(0), users(0), killed(0), - total_ddl_groups(0), total_non_trans_groups(0), total_trans_groups(0) + total_ddl_groups(0), total_non_trans_groups(0), total_trans_groups(0), + do_accept_own_server_id(false) { char *tmp; host[0] = 0; user[0] = 0; password[0] = 0; |