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

gtid_current_pos is not updated with slave transactions from old master

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.1.14
    • 10.2(EOL)
    • Replication
    • None

    Description

      Hi everybody,

      According to the documentation, the gtid_current_pos should be updated with transactions from the slave threads as well:
      https://mariadb.com/kb/en/mariadb/gtid/#gtid_current_pos

      While this is not a problem in traditional replication setups (we can use slave_pos instead of current_pos) it can be a problem with setups with intermediate masters where the higher master is older version:
      Server 1 (5.5) -> Server 2a (10.1) -> server 2b (10.1)

      If we want to switch roles between 2a and 2b we stop replication from server 1 to 2a (to failover afterwards). However we cannot use gtid_slave_pos or gtid_current_pos because they are not updated:

      MariaDB [mariadb]> select @@gtid_binlog_pos, @@gtid_slave_pos, @@gtid_current_pos;
      +------------------------+--------------------------+--------------------------+
      | @@gtid_binlog_pos      | @@gtid_slave_pos         | @@gtid_current_pos       |
      +------------------------+--------------------------+--------------------------+
      | 0-201-55312,1-1-113229 | 0-201-55312,1-102-110354 | 0-201-55312,1-102-110354 |
      +------------------------+--------------------------+--------------------------+
      1 row in set (0.00 sec)
      

      If we perform a transaction on server 2a the current_pos at least is updated:

      MariaDB [mariadb]> insert into test values(NULL);
      Query OK, 1 row affected (0.01 sec)
       
      MariaDB [mariadb]> select @@gtid_binlog_pos, @@gtid_slave_pos, @@gtid_current_pos;
      +--------------------------+--------------------------+--------------------------+
      | @@gtid_binlog_pos        | @@gtid_slave_pos         | @@gtid_current_pos       |
      +--------------------------+--------------------------+--------------------------+
      | 0-201-55312,1-101-113230 | 0-201-55312,1-102-110354 | 0-201-55312,1-101-113230 |
      +--------------------------+--------------------------+--------------------------+
      1 row in set (0.00 sec)
      

      Please make it so that current_pos (and slave_pos?) is also updated from transaction that come in from old master, as the documentation states.

      Attachments

        Issue Links

          Activity

            No workflow transitions have been executed yet.

            People

              Elkin Andrei Elkin
              michaeldg Michaƫl de groot
              Votes:
              0 Vote for this issue
              Watchers:
              6 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.