Bug #108856 Group replication executes different transactions with same GTID
Submitted: 23 Oct 2022 15:25 Modified: 25 Oct 2022 17:04
Reporter: Shubhra Prakash Nandi Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Group Replication Severity:S2 (Serious)
Version:8.0.15 OS:CentOS
Assigned to: MySQL Verification Team CPU Architecture:x86
Tags: binary log, group replication, GTID, InnoDB Cluster, writeset

[23 Oct 2022 15:25] Shubhra Prakash Nandi
Description:
We found a strange situation in our InnoDB cluster of five instances where during a failover on Oct 20, 2022 CET, a transaction which was executed on Oct 18, 2022 CET on instance 2 was found missing on instance 5. The failover happened from instance 2 to instance 5. All instances were online on Oct 18, 2022.

While analysing the bin log statements on instance 1 and instance 5 we found that different transactions were present for the same GTID (the same transaction had different GTID as well). Instance 1 seem to be in sync with instance 2.

Attached are the bin log statements for cluster instance 1 and 5 for the GTIDs in question.

If you need bin log statement for instance 2 then I can provide.

Why would this happen as one update statement was never executed on instance 5 and led to data divergence?

The bin log settings we have on all instances is as follows.

binlog_format = ROW
binlog_row_image = MINIMAL
binlog_checksum = NONE
binlog_transaction_dependency_tracking = WRITESET

log_slave_updates = ON
slave_preserve_commit_order = 1
slave_parallel_type = LOGICAL_CLOCK
slave_parallel_workers = 0

How to repeat:
No sure.
[23 Oct 2022 15:28] Shubhra Prakash Nandi
mysqlbinlog output for transactions in question

Attachment: binlog_stmts.log (text/x-log), 11.27 KiB.

[25 Oct 2022 17:04] MySQL Verification Team
Hi,

I cannot reproduce this and you are using very old version of MySQL Server. Please upgrade to latest MySQL Server and let us know if you manage to reproduce the problem.