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

Issue with storage_engine deprecation in connection with replication causing Got error 140 "Wrong create options" from storage engine InnoDB

Details

    Description

      SET storage_engine=InnoDB,default_storage_engine='MEMORY';   # Warning: 1287 | '@@storage_engine' is deprecated and will be removed in a future release. Please use '@@default_storage_engine' instead 
      CREATE TABLE t (c INT) ROW_FORMAT=FIXED;
      

      Works on the master (table is created as MEMORY) but fails on the slave with:

      11.5.0 929c2e06aae47f2dabf51b843ac84911de95bc7f (Debug, Slave)

      2024-04-22 16:37:54 6 [ERROR] Slave SQL: Error 'Can't create table `test`.`t` (errno: 140 "Wrong create options")' on query. Default database: 'test'. Query: 'CREATE TABLE t (c INT) ROW_FORMAT=FIXED', Gtid 0-1-4, Internal MariaDB error code: 1005
      2024-04-22 16:37:54 6 [Warning] Slave: InnoDB: invalid ROW_FORMAT specifier. Error_code: 1478
      2024-04-22 16:37:54 6 [Warning] Slave: Can't create table `test`.`t` (errno: 140 "Wrong create options") Error_code: 1005
      2024-04-22 16:37:54 6 [Warning] Slave: Got error 140 "Wrong create options" from storage engine InnoDB Error_code: 1030
      2024-04-22 16:37:54 6 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'binlog.000001' position 959; GTID position '0-1-3'
      2024-04-22 16:37:54 6 [Note] Slave SQL thread exiting, replication stopped in log 'binlog.000001' at position 959; GTID position '0-1-3', master: 127.0.0.1:10082
      

      Attachments

        Activity

          I attempted converting the test to MTR, but the table is created as MyISAM on the slave when using MTR:

          --source include/have_innodb.inc
          --source include/master-slave.inc
          SET storage_engine=InnoDB,default_storage_engine='MEMORY';
          --sync_slave_with_master
          CREATE TABLE t (c INT) ROW_FORMAT=FIXED;
          --connection slave
          SHOW CREATE TABLE t;  # MyISAM
          --source include/rpl_end.inc
          

          Roel Roel Van de Paar added a comment - I attempted converting the test to MTR, but the table is created as MyISAM on the slave when using MTR: --source include/have_innodb.inc --source include/master-slave.inc SET storage_engine=InnoDB,default_storage_engine='MEMORY'; --sync_slave_with_master CREATE TABLE t (c INT) ROW_FORMAT=FIXED; --connection slave SHOW CREATE TABLE t; # MyISAM --source include/rpl_end.inc

          One oddity observed during simplification of the original testcase was that the error (on the slave) was highly sporadic until parallel slave mode (using --slave-parallel-mode=aggressive) was turned off. This seems concerning from a slave data integrity POV, i.e. why was the issue sporadic when parallel slave was being used?

          Roel Roel Van de Paar added a comment - One oddity observed during simplification of the original testcase was that the error (on the slave) was highly sporadic until parallel slave mode (using --slave-parallel-mode=aggressive) was turned off. This seems concerning from a slave data integrity POV, i.e. why was the issue sporadic when parallel slave was being used?

          People

            Elkin Andrei Elkin
            Roel Roel Van de Paar
            Votes:
            0 Vote for this issue
            Watchers:
            3 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.