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

Test failure in rpl.rpl_row_create_table

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.0.8
    • Fix Version/s: 10.0.10
    • Component/s: None
    • Labels:
      None

      Description

      The test rpl.rpl_row_create_table seems to fail in prepared statement mode

      perl mysql-test-run.pl --ps-protocol rpl.rpl_row_create_table

      Seen in Buildbot, for example (link will expire eventually):

      https://buildbot.askmonty.org/buildbot/builders/kvm-fulltest2/builds/1724/steps/test_7/logs/stdio

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            elenst Elena Stepanova added a comment -

            Here is an excerpt from this rpl_row_create_table test case, where the failure actually happens:

            
            --source include/have_binlog_format_row.inc
            --source include/master-slave.inc
            
            connection master;
            CREATE TEMPORARY TABLE t7(c1 INT);
            CREATE TABLE t4(c1 INT);
            CREATE VIEW bug48506_t1 AS SELECT * FROM t4;
            CREATE TABLE IF NOT EXISTS bug48506_t1 LIKE t7;
            

            When the statements are executed normally, the last create is not written to the binary log:

            | wheezy-64-bin.000001 | 1500 | Query       |         1 |        1586 | use `test`; CREATE TABLE t4(c1 INT)                                                                                           |
            | wheezy-64-bin.000001 | 1586 | Query       |         1 |        1778 | use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `bug48506_t1` AS SELECT * FROM t4 |
            

            But when the last create is executed as a prepared statement, it is written to the binlog as is, and since the slave does not know anything about temporary table t7, replication fails:

            | wheezy-64-bin.000001 | 2624 | Query       |         1 |        2710 | use `test`; CREATE TABLE t4(c1 INT)                                                                                           |
            | wheezy-64-bin.000001 | 2710 | Query       |         1 |        2902 | use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `bug48506_t1` AS SELECT * FROM t4 |
            | wheezy-64-bin.000001 | 2902 | Query       |         1 |        3011 | use `test`; CREATE TABLE IF NOT EXISTS bug48506_t1 LIKE t7                                                                    |
            
            Show
            elenst Elena Stepanova added a comment - Here is an excerpt from this rpl_row_create_table test case, where the failure actually happens: --source include/have_binlog_format_row.inc --source include/master-slave.inc connection master; CREATE TEMPORARY TABLE t7(c1 INT); CREATE TABLE t4(c1 INT); CREATE VIEW bug48506_t1 AS SELECT * FROM t4; CREATE TABLE IF NOT EXISTS bug48506_t1 LIKE t7; When the statements are executed normally, the last create is not written to the binary log: | wheezy-64-bin.000001 | 1500 | Query | 1 | 1586 | use `test`; CREATE TABLE t4(c1 INT) | | wheezy-64-bin.000001 | 1586 | Query | 1 | 1778 | use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `bug48506_t1` AS SELECT * FROM t4 | But when the last create is executed as a prepared statement, it is written to the binlog as is, and since the slave does not know anything about temporary table t7, replication fails: | wheezy-64-bin.000001 | 2624 | Query | 1 | 2710 | use `test`; CREATE TABLE t4(c1 INT) | | wheezy-64-bin.000001 | 2710 | Query | 1 | 2902 | use `test`; CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `bug48506_t1` AS SELECT * FROM t4 | | wheezy-64-bin.000001 | 2902 | Query | 1 | 3011 | use `test`; CREATE TABLE IF NOT EXISTS bug48506_t1 LIKE t7 |
            Hide
            serg Sergei Golubchik added a comment -

            I have reverted the changeset revno:4060 (changset, that removed rpl.rpl_row_create_table from disabled.def file).

            Now it's disabled again and can be un-disabled when it won't fail the test suite.

            Show
            serg Sergei Golubchik added a comment - I have reverted the changeset revno:4060 (changset, that removed rpl.rpl_row_create_table from disabled.def file). Now it's disabled again and can be un-disabled when it won't fail the test suite.
            Hide
            monty Michael Widenius added a comment -

            This test works in 10.0.10. Was fixed by revno 4007

            Show
            monty Michael Widenius added a comment - This test works in 10.0.10. Was fixed by revno 4007

              People

              • Assignee:
                monty Michael Widenius
                Reporter:
                knielsen Kristian Nielsen
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: