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

MASTER_GTID_WAIT() works incorrectly in case of out-of-order GTIDs in master binlog

    Details

    • Type: Bug
    • Status: Stalled
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 10.0.9
    • Fix Version/s: 10.0
    • Component/s: None
    • Labels:
      None

      Description

      If manual transactions are made on the slave, or in case of multi-master ring
      configured without separate domain ids, two GTIDs with the same sequence
      number and domain id (but distinct server_id) may occur.

      MASTER_GTID_WAIT() does not correctly deal with this situation, as it compares
      only against the sequence number within each domain. This means that it may
      return too early, ie. waiting for the second of two such GTIDs with same
      sequence number will return already when the first of them has been applied on
      the slave.

      This needs to be fixed. The master already sends GTID_LIST events that
      contain the current binlog state, giving the highest sequence number applied
      for each (domain_id, server_id) tuple. The slave should use and maintain this
      binlog state when handling MASTER_GTID_WAIT(), so that the wait is for
      sequence number within the full (domain_id, server_id) tuple, not just the
      domain.

        Gliffy Diagrams

          Attachments

            Activity

            There are no comments yet on this issue.

              People

              • Assignee:
                knielsen Kristian Nielsen
                Reporter:
                knielsen Kristian Nielsen
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated: