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

Initial Metadata on a MEMORY table creates binary log event despite wsrep_mode="DISALLOW_LOCAL_GTID"

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      Hi,

      I have a Galera cluster with wsrep_mode="DISALLOW_LOCAL_GTID".

      There are 2 schema's with MEMORY tables. 1 table in 'dba' schema and 1 table in 'dba' and 17 tables in 'magento-webshop'. The wsrep_domain_id (local domain id) is 293176233

      As the DISALLOW_LOCAL_GTID option is enabled I expect no local GTIDs to be created, however:

      MariaDB [dba]> show global variables like 'gtid_binlog_pos';
      +-----------------+------------------------------------------------------+
      | Variable_name   | Value                                                |
      +-----------------+------------------------------------------------------+
      | gtid_binlog_pos | 293176233-293176233-67,4248433653-293176233-12669073 |
      +-----------------+------------------------------------------------------+
      1 row in set (0.000 sec)
      ---- (now I restart mariadb)
      MariaDB [dba]> show global variables like 'gtid_binlog_pos';
      ERROR 2006 (HY000): Server has gone away
      No connection. Trying to reconnect...
      Connection id:    18
      Current database: dba
       
      +-----------------+------------------------------------------------------+
      | Variable_name   | Value                                                |
      +-----------------+------------------------------------------------------+
      | gtid_binlog_pos | 293176233-293176233-68,4248433653-293176233-12669306 |
      +-----------------+------------------------------------------------------+
      1 row in set (0.003 sec)
      ---- now the GTID has gone up to '68', because of 1 MEMORY table in the dba schema
      MariaDB [dba]> use magento-webshop
      Reading table information for completion of table and column names
      You can turn off this feature to get a quicker startup with -A
       
      Database changed
      MariaDB [magento-webshop]> show global variables like 'gtid_binlog_pos';
      +-----------------+------------------------------------------------------+
      | Variable_name   | Value                                                |
      +-----------------+------------------------------------------------------+
      | gtid_binlog_pos | 293176233-293176233-85,4248433653-293176233-12669359 |
      +-----------------+------------------------------------------------------+
      1 row in set (0.001 sec)
      -- Now the local GTID goes up to 85 (17 transactions), 1 for each MEMORY table in the webshop-magenta schema.
      

      As you can see in the output, local GTID's are produced while the wsrep_mode setting does not allow this.

      This is a problem, because local GTID's are added to the binlog, and replica's connecting to a different Galera cluster node will not have the new primary's local wsrep_domain_id. Until MDEV-34487 is implemented I am trying to stop any event from ending up in the binary log for the local domains. As the wsrep_mode indicates it is not allowed, I don't expect having a table in the system generates (local) binlog events.

      Attachments

        Activity

          People

            Unassigned Unassigned
            michaeldg Michaël de groot
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.