Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.11.16, 11.4.10, 12.2.2
-
None
-
None
Description
I've attached a patch that appears to fix this. It looks like the GTID comparison did not take the domain into account and only looked at the sequence number.
I tested this with the following commit:
commit 0d9db6bbcc5532e0bde0a63e5991cb5ebee060eb (HEAD -> 11.4, origin/11.4)
|
With this test case:
diff --git a/mysql-test/main/session_tracker_sysvar.test b/mysql-test/main/session_tracker_sysvar.test
|
index 54b69782697..fe41e7ce98f 100644
|
--- a/mysql-test/main/session_tracker_sysvar.test
|
+++ b/mysql-test/main/session_tracker_sysvar.test
|
@@ -16,6 +16,18 @@ insert into t1 values (1);
|
select @@last_gtid;
|
drop table t1;
|
|
+SET @@session.session_track_system_variables='last_gtid,gtid_domain_id';
|
+create table t1 (a int) engine=innodb;
|
+set statement gtid_domain_id=0 for insert into t1 values (0);
|
+set statement gtid_domain_id=1 for insert into t1 values (1);
|
+set statement gtid_domain_id=2 for insert into t1 values (2);
|
+set statement gtid_domain_id=3 for insert into t1 values (3);
|
+set statement gtid_domain_id=4 for insert into t1 values (4);
|
+set statement gtid_domain_id=5 for insert into t1 values (5);
|
+set statement gtid_domain_id=5 for insert into t1 values (5);
|
+set statement gtid_domain_id=5 for insert into t1 values (5);
|
+drop table t1;
|
+
|
--disable_session_track_info
|
reset master; |
And the output was this:
CURRENT_TEST: main.session_tracker_sysvar
|
--- /home/markusjm/mariadb-server/mysql-test/main/session_tracker_sysvar.result 2026-02-25 10:57:13.215261115 +0200
|
+++ /home/markusjm/mariadb-server/mysql-test/main/session_tracker_sysvar.reject 2026-04-23 22:29:39.404217322 +0300
|
@@ -27,6 +27,52 @@
|
-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
-- last_gtid: 0-1-1002
|
|
+SET @@session.session_track_system_variables='last_gtid,gtid_domain_id';
|
+create table t1 (a int) engine=innodb;
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- last_gtid: 0-1-1003
|
+
|
+set statement gtid_domain_id=0 for insert into t1 values (0);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 0
|
+-- last_gtid: 0-1-1004
|
+
|
+set statement gtid_domain_id=1 for insert into t1 values (1);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 1
|
+-- last_gtid: 1-1-1
|
+
|
+set statement gtid_domain_id=2 for insert into t1 values (2);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 2
|
+
|
+set statement gtid_domain_id=3 for insert into t1 values (3);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 3
|
+
|
+set statement gtid_domain_id=4 for insert into t1 values (4);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 4
|
+
|
+set statement gtid_domain_id=5 for insert into t1 values (5);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 5
|
+
|
+set statement gtid_domain_id=5 for insert into t1 values (5);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 5
|
+-- last_gtid: 5-1-2
|
+
|
+set statement gtid_domain_id=5 for insert into t1 values (5);
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 5
|
+-- last_gtid: 5-1-3
|
+
|
+drop table t1;
|
+-- Tracker : SESSION_TRACK_SYSTEM_VARIABLES
|
+-- gtid_domain_id: 0
|
+-- last_gtid: 0-1-1005
|
+
|
reset master;
|
The sysvar trackers for last_gtid are inconsistent. Inserting multiple statements on the same domain appears to make it work. The same happens even if the gtid_domain_id modification is in a separate SET statement.
Attachments
Issue Links
- relates to
-
MXS-6461 causal_reads=universal uses only the first GTID domain from the GTID list
-
- Closed
-