Uploaded image for project: 'MariaDB ColumnStore'
  1. MariaDB ColumnStore
  2. MCOL-4736

Fix cross-engine mtr tests to run without --extern

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 5.6.1
    • 5.6.1
    • mtr
    • None

    Description

      If I run MTR without --extern, the following tests, related to cross-engine queries, fail:

      columnstore/basic.mcs44_select_crossengine_join
      columnstore/basic.mcs45_write_crossengine_join
      columnstore/basic.mcs63_crossengine_views
      columnstore/basic.mcs64_crossengine_group_by
      columnstore/basic.mcs65_crossengine_order_by
      columnstore/basic.mcs71_crossengine_where_groupby_orderby_limit
      columnstore/basic.mcs79_exists
      columnstore/basic.mcs80_set_operations
      columnstore/basic.mcs85_derived_table
      columnstore/basic.mcs90_aggregate_functions
      

      The description of all found problems follows.

      Missing InnoDB engine

      The first problem is a missing -- source include/have_innodb.inc directive. This makes tests fail with the following error:

      mysqltest: At line 30: query 'CREATE TABLE t1 (t1_int INT, t1_char CHAR(5))ENGINE=Innodb' failed: 1286: Unknown storage engine 'Innodb'
      

      Hard-coded path to tools

      Hard-coded paths in these commands

      ---exec /usr/bin/mcsSetConfig CrossEngineSupport User 'cejuser'
      ---exec /usr/bin/mcsSetConfig CrossEngineSupport Password 'Vagrant1|0000001'
      

      assume that MariaDB is installed in the default location. If MariaDB is compiled with a non-default CMAKE_INSTALL_PREFIX, tests fail with this error:

      mysqltest: At line 19: exec of '/usr/bin/mcsSetConfig CrossEngineSupport User 'cejuser'' failed, error: 32512, status: 127, errno: 11
      

      These lines should be fixed to:

      --exec $MCS_MCSSETCONFIG CrossEngineSupport User 'cejuser'
      --exec $MCS_MCSSETCONFIG CrossEngineSupport Password 'Vagrant1|0000001'
      

      where $MCS_MCSSETCONFIG should be detected inside this new file:

      storage/columnstore/columnstore/mysql-test/columnstore/basic/suite.pm
      

      with about the following content:

      package My::Suite::ColumnStore;
       
      @ISA = qw(My::Suite);
       
      my $mcs_bin_dir_compiled=$::bindir . '/storage/columnstore/columnstore/bin';
      my $mcs_ins_dir_installed=$::bindir . '/bin';
       
      if (-d $mcs_bin_dir_compiled)
      {
        $ENV{MCS_MCSSETCONFIG}=$mcs_bin_dir_compiled . "/mcsSetConfig";
      }
      elsif (-d $mcs_ins_dir_installed)
      {
        $ENV{MCS_MCSSETCONFIG}=$mcs_ins_dir_installed . "/mcsSetConfig";
      }
       
      sub is_default { 0 }
       
      bless { };
      

      It will work correctly in both cases:

      • when mtr is started from the build directory
      • when mtr is started from the installed directory

      See storage/mroonga/mysql-test/mroonga/storage/suite.pm as an example of the build vs the installed directory detection.

      Port is not configured

      A new mcsSetConfig command execution should be added to configure the port:

      if (!$MASTER_MYPORT)
      {
        # Running with --extern
        let $MASTER_MYPORT=`SELECT @@port`;
      }
      --exec $MCS_MCSSETCONFIG CrossEngineSupport Port $MASTER_MYPORT
      

      Without this mcsSetConfig invokation, the test assumes to be executed with --extern, and works only with the default port 3306.

      When mtr is running without --extern, it starts a MariaDB server on a non-default port. So the above proposed change will make MCS aware of which correct port to use.

      Attachments

        Issue Links

          Activity

            People

              bar Alexander Barkov
              bar Alexander Barkov
              Votes:
              0 Vote for this issue
              Watchers:
              1 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.