Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-39428

sysvar tracker is not always sent for last_gtid

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.11.16, 11.4.10, 12.2.2
    • None
    • Server
    • 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

          Activity

            People

              Unassigned Unassigned
              markus makela markus makela
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.