1. 18 Sep, 2019 1 commit
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-19529 InnoDB hang on DROP FULLTEXT INDEX · 8a79fa0e
      Thirunarayanan Balathandayuthapani authored
      Problem:
      =======
        During dropping of fts index, InnoDB waits for fts_optimize_remove_table()
      and it holds dict_sys->mutex and dict_operaiton_lock even though the
      table id is not present in the queue. But fts_optimize_thread does wait
      for dict_sys->mutex to process the unrelated table id from the slot.
      
      Solution:
      ========
        Whenever table is added to fts_optimize_wq, update the fts_status
      of in-memory fts subsystem to TABLE_IN_QUEUE. Whenever drop index
      wants to remove table from the queue, it can check the fts_status
      to decide whether it should send the MSG_DELETE_TABLE to the queue.
      
      Removed the following functions because these are all deadcode.
      dict_table_wait_for_bg_threads_to_exit(),
      fts_wait_for_background_thread_to_start(),fts_start_shutdown(), fts_shudown().
      8a79fa0e
  2. 17 Sep, 2019 1 commit
  3. 14 Sep, 2019 1 commit
  4. 13 Sep, 2019 2 commits
    • Igor Babaev's avatar
      Post fix after the patch for MDEV-20576. · 0954bcb6
      Igor Babaev authored
      Adjusted test results.
      0954bcb6
    • Igor Babaev's avatar
      MDEV-20576 A new assertion added to check validity of calculated · deb9121f
      Igor Babaev authored
                 selectivity values fails
      
      After having set the assertion that checks validity of selectivity values
      returned by the function table_cond_selectivity() a test case from
      order_by.tesst failed. The failure occurred because range optimizer could
      return as an estimate of the cardinality of the ranges built for an index
      a number exceeding the total number of records in the table.
      
      The second bug is more subtle. It may happen when there are several
      indexes with same prefix defined on the first joined table t accessed by
      a constant ref access. In this case the range optimizer estimates the
      number of accessed records of t for each usable index and these
      estimates can be different. Only the first of these estimates is taken
      into account when the selectivity of the ref access is calculated.
      However the optimizer later can choose a different index that provides
      a different estimate. The function table_condition_selectivity() could use
      this estimate to discount the selectivity of the ref access. This could
      lead to an selectivity value returned by this function that was greater
      that 1.
      deb9121f
  5. 11 Sep, 2019 1 commit
  6. 09 Sep, 2019 1 commit
  7. 04 Sep, 2019 1 commit
  8. 03 Sep, 2019 2 commits
  9. 01 Sep, 2019 1 commit
  10. 28 Aug, 2019 2 commits
  11. 27 Aug, 2019 2 commits
  12. 26 Aug, 2019 2 commits
    • Julius Goryavsky's avatar
      MDEV-20420: SST failed after MDEV-18863 in some test configurations · de0f93fb
      Julius Goryavsky authored
      After applying MDEV-18863, in some test configurations, SST
      may fails due to duplication of some parameters (in particular
      "--port") in the main part of the command line and after
      "--mysqld-args", as well as due to incorrect interpretation
      of the parameter "--port" passed after "--mysqld-args" when
      the SST script is invoked without explicitly specifying a port
      for SST. In addition, it is necessary to correctly handle spaces,
      quotation marks and special characters when copying original
      arguments from the argv[] array to a new command line (after
      "--mysqld-args"). This patch resolves these shortcomings.
      de0f93fb
    • Sujatha's avatar
      MDEV-20188: binlog.binlog_stm_drop_tmp_tbl fails in buildbot with Unknown table on exec · 4a9fb905
      Sujatha authored
      Analysis:
      ========
      As part of BUG#28642318 fix, two new test cases were added. The first test
      case tests a scenario where two sessions are present, in which the first
      session has a regular table named 't1' and another session has a temporary
      table named 't1'. Test executes a DELETE statement on regular table. These
      statements are captured from binary log and replayed back on new client
      connection to prove that DELETE statement is applied successfully. Note that
      the binlog contains only CREATE TEMPORARY TABLE part hence a temporary table
      gets created in new connection. This replaying logic is implemented by using
      '--exec $MYSQL' command. If the new connection gets disconnected within the
      scope of first test case the test passes, i.e the temporary table gets dropped
      as part thread cleanup. But on slow platforms the connection gets closed at
      the time of execution of test case 2. When the temporary table is dropped as
      part thread cleanup a "DROP TEMPORARY TABLE t1" is written into the binary
      log. In test case two the same sessions continue to exist and and table names
      are reused to test a new bug scenario. The additional "DROP TEMPORARY TABLE"
      command drops second test specific tables which results in "Unknown table"
      error.
      
      Fix:
      ====
      Rename the second case specific table to 't2'. Even if the close connection
      from test case one happens later the drop command with has
      'DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t1`' will not result in an error.
      4a9fb905
  13. 22 Aug, 2019 2 commits
  14. 21 Aug, 2019 2 commits
  15. 20 Aug, 2019 5 commits
  16. 19 Aug, 2019 2 commits
    • Julius Goryavsky's avatar
      MDEV-18863: Galera SST scripts can't read [mysqldN] option groups · 457dc9d6
      Julius Goryavsky authored
      Some users and some scripts (for example, mysqld_multi.sh) use special
      option groups with names like [mysqld1], [mysqld2], ..., [mysqldN].
      
      But SST scripts can't currently fully support these option groups.
      The only option group-related value it gets from the server is
      --defaults-group-suffix, if that option was set for mysqld when
      the server was started.
      
      However, the SST scripts does not get told by the server to read
      these option groups, so this means that the SST script will fail
      to read options like innodb-data-home-dir when it is in a option
      group like [mysqld1]...[mysqldN].
      
      Moreover, SST scripts ignore many parameters that can be passed
      to them explicitly and cannot transfer them further, for example,
      to the input of mariabackup utility. Ideally, we want to transfer
      all the parameters of the original mysqld call to utilities such
      as mariabackup, however the SST script does not receive these
      parameters from the server and therefore cannot transfer them to
      mariabackup.
      
      To correct these shortcomings, we need to transfer to the scripts
      all of the parameters of the original mysqld call, and in the SST
      scripts themselves provide for the transfer all of these parameters
      to utilities such as mariabackup. To prevent these parameters from
      mixing with the script's own parameters, they should be transferred
      to SST script after the special option "--mysqld-args", followed by
      the string argument with the original parameters, as it received by
      the mysqld call at the time of launch (further all these parameters
      will be passed to mariabackup, for example).
      
      In addition, the SST scripts themselves must be refined so that
      they can read the parameters from the user-selected group, not just
      from the global mysqld configuration group. And also so that they
      can receive the parameters (which important for their work) as
      command-line arguments.
      457dc9d6
    • Igor Babaev's avatar
      MDEV-20265 Unknown column in field list · e746f451
      Igor Babaev authored
      This patch corrects the fix of the patch for mdev-19421 that resolved
      the problem of parsing some embedded join expressions such as
        t1 join t2 left join t3 on t2.a=t3.a on t1.a=t2.a.
      Yet the patch contained a bug that prevented proper context analysis
      of the queries where such expressions were used together with comma
      separated table references in from clauses.
      e746f451
  17. 16 Aug, 2019 4 commits
    • Alexander Barkov's avatar
      f987de71
    • Sergei Petrunia's avatar
      MDEV-19834 Selectivity of an equality condition discounted twice · ecdacf72
      Sergei Petrunia authored
      Update test results.
      ecdacf72
    • Alexander Barkov's avatar
      MDEV-15955 Assertion `field_types == 0 || field_types[field_pos] ==... · ec1f195e
      Alexander Barkov authored
      MDEV-15955 Assertion `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_LONGLONG' failed in Protocol_text::store_longlong
      ec1f195e
    • Jan Lindström's avatar
      MDEV-18778: mysql_tzinfo_to_sql does not work correctly in MariaDB Galera · fa740888
      Jan Lindström authored
      There were two problems:
      
      (1) If user wanted same time zone information on all nodes in the Galera
      cluster all updates were not replicated as time zone information was
      stored on MyISAM tables. This is fixed on Galera by altering time zone
      tables to InnoDB while they are modified.
      
      (2) If user wanted different time zone information to nodes in the Galera
      cluster TRUNCATE TABLE for time zone tables was replicated by Galera
      destroying time zone information from other nodes. This is fixed
      on Galera by introducing new option for mysql_tzinfo_to_sql_symlink
      tool --skip-write-binlog to disable Galera replication while
      time zone tables are modified.
      
      Changes to be committed:
      	modified:   mysql-test/r/mysql_tzinfo_to_sql_symlink.result
      	modified:   mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result
      	new file:   mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink_skip.result
      	new file:   mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test
      	modified:   sql/tztime.cc
      fa740888
  18. 15 Aug, 2019 1 commit
  19. 13 Aug, 2019 3 commits
  20. 12 Aug, 2019 4 commits