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

Attempting to create a CONNECT engine Table results in non-InnoDB sequences in Galera cluster error

Details

    Description

      The following fails with seemingly completely unrelated error on a 10.11.9 Galera Cluster:

      CREATE OR REPLACE TABLE hub.`mmc_players_test` (
        `mmc_serialNumber` varchar(10) DEFAULT NULL,
        `network_name` varchar(50) DEFAULT NULL,
        `player_desc` varchar(200) DEFAULT NULL,
        `group_name` varchar(50) DEFAULT NULL,
        `venue_name` varchar(100) DEFAULT NULL,
        `venue_desc` varchar(200) DEFAULT NULL,
        `layout_name` varchar(50) DEFAULT NULL,
        `layout_desc` varchar(200) DEFAULT NULL
      ) ENGINE=CONNECT table_type=mysql CONNECTION='mysql://aaa:bbb@x.x.x.x/mc_media/v_mmc_players';
      

      [42000][1235] This version of MariaDB doesn't yet support 'non-InnoDB sequences in Galera cluster'

      PLUGIN_VERSION=1.7
      PLUGIN_TYPE_VERSION=101109.0
      PLUGIN_AUTH_VERSION=1.07.0003

      The above create CONNECT table statements works correctly on a 10.6.15 Galera Cluster.
      PLUGIN_VERSION=1.7
      PLUGIN_TYPE_VERSION=100615.0
      PLUGIN_AUTH_VERSION=1.07.0003

      Attachments

        Issue Links

          Activity

            stephanvos Stephan Vos added a comment -

            Is there any workaround for this issue?
            Currently we need to create a few new CONNECT tables but we can't due to this error.

            stephanvos Stephan Vos added a comment - Is there any workaround for this issue? Currently we need to create a few new CONNECT tables but we can't due to this error.

            stephanvos CONNECT engine is not really supported by Galera so you could try SET wsrep_on=OFF; CREATE ... ; SET wsrep_on=ON; But you need to do this on every node.

            janlindstrom Jan Lindström added a comment - stephanvos CONNECT engine is not really supported by Galera so you could try SET wsrep_on=OFF; CREATE ... ; SET wsrep_on=ON; But you need to do this on every node.
            stephanvos Stephan Vos added a comment - - edited

            Is there any official documentation that states this?
            I can try your suggestion on our TEST environment but would not want to mess around with WSREP on Production...

            It worked, could create CONNECT tables without getting any error or having to fiddle with WSREP up until 10.6.15 at least) - so what has changed?

            stephanvos Stephan Vos added a comment - - edited Is there any official documentation that states this? I can try your suggestion on our TEST environment but would not want to mess around with WSREP on Production... It worked, could create CONNECT tables without getting any error or having to fiddle with WSREP up until 10.6.15 at least) - so what has changed?

            stephanvos https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/

            Galera replication works reliable only with InnoDB tables but DDL of static engines should work normally. I think there is bug when creating tables containing dynamic engine, problem could be that CREATE TABLE ... ENGINE=SEQUENCE (not supported by Galera) and CREATE TABLE ... ENGINE=CONNECT are somehow not recognized as different.

            janlindstrom Jan Lindström added a comment - stephanvos https://mariadb.com/kb/en/mariadb-galera-cluster-known-limitations/ Galera replication works reliable only with InnoDB tables but DDL of static engines should work normally. I think there is bug when creating tables containing dynamic engine, problem could be that CREATE TABLE ... ENGINE=SEQUENCE (not supported by Galera) and CREATE TABLE ... ENGINE=CONNECT are somehow not recognized as different.
            stephanvos Stephan Vos added a comment -

            That makes sense, can explain why it worked before but no longer working then.
            Perhaps the check in the code has been modified since 10.6.15.

            stephanvos Stephan Vos added a comment - That makes sense, can explain why it worked before but no longer working then. Perhaps the check in the code has been modified since 10.6.15.
            stephanvos Stephan Vos added a comment -

            Is there any risk, in the interim, to set WSREP_ON=Off just for a session to create the table?

            stephanvos Stephan Vos added a comment - Is there any risk, in the interim, to set WSREP_ON=Off just for a session to create the table?

            stephanvos There was a fix to avoid problem with ENGINE=SEQUENCE and I did not then test CONNECT so maybe there is a new bug. You can disable Galera SET SESSION wsrep_on=OFF and it is safe.

            janlindstrom Jan Lindström added a comment - stephanvos There was a fix to avoid problem with ENGINE=SEQUENCE and I did not then test CONNECT so maybe there is a new bug. You can disable Galera SET SESSION wsrep_on=OFF and it is safe.
            janlindstrom Jan Lindström added a comment - https://github.com/MariaDB/server/pull/3768
            sysprg Julius Goryavsky added a comment - janlindstrom Thanks, the fix has been merged into the main branch: https://github.com/MariaDB/server/commit/3f5b6a9837413d4a6a8526a076be5eba88a56286
            stephanvos Stephan Vos added a comment -

            Thanks for fixing, will test when the fix version becomes available.

            stephanvos Stephan Vos added a comment - Thanks for fixing, will test when the fix version becomes available.

            People

              sysprg Julius Goryavsky
              stephanvos Stephan Vos
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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