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/log.h | |
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/log.h')
-rw-r--r-- | sql/log.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/log.h b/sql/log.h index 516fb36adb9..aec48263d84 100644 --- a/sql/log.h +++ b/sql/log.h @@ -920,7 +920,7 @@ public: bool lookup_domain_in_binlog_state(uint32 domain_id, rpl_gtid *out_gtid); int bump_seq_no_counter_if_needed(uint32 domain_id, uint64 seq_no); bool check_strict_gtid_sequence(uint32 domain_id, uint32 server_id, - uint64 seq_no); + uint64 seq_no, bool no_error= false); /** * used when opening new file, and binlog_end_pos moves backwards |