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

Combinations defined in the base suite cannot be skipped by overlay

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 5.5.25
    • Fix Version/s: 5.5.27
    • Component/s: None
    • Labels:

      Description

      The binlog suite already has a combinations file, which defines three combinations: row, mix, stmt. We will be working with it.

      cd <basedir>/mysql-test

      Create an overlay for the binlog suite for MyISAM:

      mkdir -p ../storage/myisam/mysql-test/binlog

      Run the test to make sure that combinations still work:

      perl ./mtr --suite=binlog-myisam binlog_server_id

      binlog-myisam.binlog_server_id 'mix'     [ pass ]     16
      binlog-myisam.binlog_server_id 'row'     [ pass ]     19
      binlog-myisam.binlog_server_id 'stmt'    [ pass ]     14

      Add suite.pm in the overlay:
      vi ../storage/myisam/mysql-test/binlog/suite.pm

      package My::Suite::Binlog::MyISAM;
       
      @ISA = qw(My::Suite);
       
      sub skip_combinations {(
          'combinations' => [ 'mix', 'rpl' ],
      )}
      bless { };

      Run the test again:

      perl ./mtr --suite=binlog-myisam binlog_server_id

      binlog-myisam.binlog_server_id 'mix'     [ pass ]     14
      binlog-myisam.binlog_server_id 'row'     [ pass ]     12
      binlog-myisam.binlog_server_id 'stmt'    [ pass ]     13

      Didn't work – mix is still there.

      Add its own combinations file in the overlay:

      vi ../storage/myisam/mysql-test/binlog/combinations

      [mine5]
      --lock-wait-timeout=5
       
      [mine3]
      --lock-wait-timeout=3

      Run the test again:

      perl ./mtr --suite=binlog-myisam binlog_server_id

      binlog-myisam.binlog_server_id 'mix'     [ pass ]     12
      binlog-myisam.binlog_server_id 'row'     [ pass ]     12
      binlog-myisam.binlog_server_id 'stmt'    [ pass ]     19
      binlog-myisam.binlog_server_id 'mine3'   [ pass ]     17
      binlog-myisam.binlog_server_id 'mine5'   [ pass ]     15

      The combinations file in overlay works.

      Try to disable one of the suite's custom combinations:

      vi ../storage/myisam/mysql-test/binlog/suite.pm

      package My::Suite::Binlog::MyISAM;
       
      @ISA = qw(My::Suite);
       
      sub skip_combinations {(
          'combinations' => [ 'mix', 'rpl', 'mine3' ],
      )}
      bless { };

      perl ./mtr --suite=binlog-myisam binlog_server_id

      binlog-myisam.binlog_server_id 'mix'     [ pass ]     12
      binlog-myisam.binlog_server_id 'row'     [ pass ]     13
      binlog-myisam.binlog_server_id 'stmt'    [ pass ]     14
      binlog-myisam.binlog_server_id 'mine5'   [ pass ]     13

      This worked, so it's not like our subroutine is bad, or something; but 'mix' is still there.

      Possibly the combinations file should be somehow specified with a prefix in the suite.pm (in the hash key), but I haven't found a way to do so, neither by trying nor by reading the code, although maybe I didn't dig deep enough.

        Attachments

          Activity

            People

            • Assignee:
              serg Sergei Golubchik
              Reporter:
              elenst Elena Stepanova
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: