1. 21 Jun, 2021 5 commits
  2. 18 Jun, 2021 2 commits
    • Sergei Golubchik's avatar
      fix spider tests for --ps · 068246c0
      Sergei Golubchik authored
      spider tests use
      
      --let $var= many;sql;statements
      --eval $var
      
      and this doesn't work in ps
      068246c0
    • Sergei Golubchik's avatar
      spider tests aren't big · a5f6eca5
      Sergei Golubchik authored
      and *never* disable tests in suite.pm based on $::opt_big_test,
      this will make the test skipped both as too big (for ./mtr)
      and as too small (for ./mtr --big --big).
      a5f6eca5
  3. 17 Jun, 2021 1 commit
  4. 16 Jun, 2021 2 commits
  5. 15 Jun, 2021 9 commits
    • Julius Goryavsky's avatar
      MDEV-25880 part 2: Improving reliability of the SST scripts · 2edb8e12
      Julius Goryavsky authored
      Additional improvements aimed at improving operational
      reliability of the SST scripts:
      
      1) Script need to give rsync and stunnel a short time to
         terminate after "kill -9" before the first PID check
         using ps utility;
      2) The temporary file used to create the binlog index could
         sometimes remain in the data directory if tar failed and
         then may be reused without being cleaned up (the next
         time when SST was run) - now it's fixed;
      3) The temporary file used to build the binlog index is now
         created using mktemp and, if this variable is present in
         the configuration file, in tmpdir;
      4) Checking the secret tag in SST via rsync is made faster
         and does not require creating a temporary file, which
         could remain in the data directory in case of failure;
      5) Added "-F" option to grep to check the tag when using
         mariabackup/xtrabackup-v2 - to avoid possible collisions
         in case of special characters in the tag value (unlikely
         scenario, but the new check is more reliable).
      2edb8e12
    • Julius Goryavsky's avatar
      MDEV-25880: rsync may be mistakenly killed when overlapping SST · 18d5be5b
      Julius Goryavsky authored
      This commit fixes a bug was originally discovered during the
      galera_nbo_sst_slave mtr test for 10.6 branch. However it is
      relevant for all versions and can lead to intermittent SST
      crashes via rsync on very fast server restarts - when a new
      SST process (for example, after starting a new server instance)
      overlaps the old SST process started by the previous, already
      terminated server. This overlap can result in the new rsync
      being killed instead of the old rsync, or the pid file from
      the new rsync being killed, which then lead to problems.
      18d5be5b
    • Eugene Kosov's avatar
      fix clang build · 1c35a3f6
      Eugene Kosov authored
      a new warning -Wunused-but-set-variable was introduced recently to clang
      1c35a3f6
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-24713 Assertion `dict_table_is_comp(index->table)' failed in row_merge_buf_add() · 7d591cf8
      Thirunarayanan Balathandayuthapani authored
      - During online alter conversion from compact to redundant,
      virtual column field length already set during
      innobase_get_computed_value(). Skip the char(n) check for
      virtual column in row_merge_buf_add()
      7d591cf8
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-25872 InnoDB: Assertion failure in row_merge_read_clustered_index upon... · 7229107e
      Thirunarayanan Balathandayuthapani authored
      MDEV-25872 InnoDB: Assertion failure in row_merge_read_clustered_index upon ALTER on table with indexed virtual columns
      
      - InnoDB fails to check DB_COMPUTE_VALUE_FAILED error in
      row_merge_read_clustered_index() and wrongly asserts that
      the buffer shouldn't be ran out of memory. Alter table
      should give warning when the column value is being
      truncated.
      7229107e
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-14180 Automatically disable key rotation checks for file_key_managment plugin · 8c7d8b71
      Thirunarayanan Balathandayuthapani authored
      Problem:
      =======
      - InnoDB iterates the fil_system space list to encrypt the
      tablespace in case of key rotation. But it is not
      necessary for any encryption plugin which doesn't do
      key version rotation.
      
      Solution:
      =========
      - Introduce a new variable called srv_encrypt_rotate to
      indicate whether encryption plugin does key rotation
      
      fil_space_crypt_t::key_get_latest_version(): Enable the
      srv_encrypt_rotate only once if current key version is
      higher than innodb_encyrption_rotate_key_age
      
      fil_crypt_must_default_encrypt(): Default encryption tables
      should be added to default_encryp_tables list if
      innodb_encyrption_rotate_key_age is zero and encryption
      plugin doesn't do key version rotation
      
      fil_space_create(): Add the newly created space to
      default_encrypt_tables list if
      fil_crypt_must_default_encrypt() returns true
      
      Removed the nondeterministic select from
      innodb-key-rotation-disable test. By default,
      InnoDB adds the tablespace to the rotation list and
      background crypt thread does encryption of tablespace.
      So these select doesn't give reliable results.
      8c7d8b71
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-14180 preparation: Rename key_rotation_list · 7d2c338c
      Thirunarayanan Balathandayuthapani authored
      - Rename the rotation list to default_encrypt_tables in
      fil_system_t. Because rotation list naming could be
      misleading when it comes to key version rotation
      
      - Rename is_in_rotation_list to is_in_default_encrypt
      in fil_space_t
      
      - Rename keyrotate_next function to default_encrypt_next
      
      fil_system_t::default_encrypt_next(): Find the next
      suitable default encrypt table if beginning of
      default_encrypt_tables list has been scheduled
      to be deleted
      7d2c338c
    • Daniel Black's avatar
      cmake OpenBSD copyright notice correction · be243ed9
      Daniel Black authored
      Brad Smith made this OpenBSD file based of the
      FreeBSD cmake directives in commit ab589043
      by the Monty Program Ab.
      
      As such the Oracle Copyright header isn't really applicable.
      be243ed9
    • Jordy Zomer's avatar
      eventscheduler mismatch of my_{malloc,free}, delete · ec4df514
      Jordy Zomer authored
      Fix malloc/delete mismatch. This causes a double free in the cleanup.
      
      closes #1845
      ec4df514
  6. 14 Jun, 2021 1 commit
  7. 12 Jun, 2021 2 commits
  8. 11 Jun, 2021 1 commit
  9. 10 Jun, 2021 2 commits
    • Otto Kekäläinen's avatar
      MDEV-20392: Skip ABI check if 'diff' is not found · 152c83d4
      Otto Kekäläinen authored
      Not all environments have 'diff' installed. Most notably CentOS 8
      does not have diff out-of-the-box. Thus users running 'cmake .' and
      'make' would fail to build MariaDB, and they would think the error
      was in ABI incompatibilities due to the error message emitted by CMake
      when in reality simply 'diff' was missing.
      
      This fixes it and makes the developer experience better by simply
      skipping the diffing if 'diff' is not found.
      
      Closes #1846
      152c83d4
    • Marko Mäkelä's avatar
      Remove orphan type name trx_sig_t · 396864c6
      Marko Mäkelä authored
      This was missed in commit 1d0f70c2.
      396864c6
  10. 09 Jun, 2021 3 commits
    • Elena Stepanova's avatar
    • Sergei Petrunia's avatar
      MDEV-25630: Crash with window function in left expr of IN subquery · c872125a
      Sergei Petrunia authored
      * Make Item_in_optimizer::fix_fields inherit the with_window_func
        attribute of the subquery's left expression (the subquery itself
        cannot have window functions that are aggregated in this select)
      
      * Make Item_cache_wrapper::Item_cache_wrapper() inherit
        with_window_func attribute of the item it is caching.
      c872125a
    • Marko Mäkelä's avatar
      MDEV-25886 CHECK TABLE crash with DB_MISSING_HISTORY if innodb_read_only · 75a65d32
      Marko Mäkelä authored
      Occasionally, the test innodb.alter_copy would fail in MariaDB 10.6.1,
      reporting DB_MISSING_HISTORY during CHECK TABLE. It started to occur during
      the development of MDEV-25180, which introduced purge_sys.stop_SYS().
      If we delay purge more during DDL operations, then the test would
      almost always fail. The reason is that during startup we will restore
      a purge view, and CHECK TABLE would still use REPEATABLE READ
      even though innodb_read_only is set and other isolation levels
      than READ UNCOMMITTED are not guaranteed to work.
      
      ha_innobase::check(): Use READ UNCOMMITTED isolation level if
      innodb_read_only is set or innodb_force_recovery exceeds 3.
      
      dict_set_corrupted(): Do not update the persistent data dictionary
      if innodb_force_recovery exceeds 3.
      75a65d32
  11. 08 Jun, 2021 2 commits
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 6e9642be
      Marko Mäkelä authored
      6e9642be
    • Marko Mäkelä's avatar
      MDEV-25869 Change buffer entries are lost on InnoDB restart · dfa2d0bc
      Marko Mäkelä authored
      buf_read_ibuf_merge_pages(): If space->size is 0, invoke
      fil_space_get_size() to determine the size of the tablespace
      by reading the header page. Only after that proceed to delete
      any entries that are beyond the end of the tablespace.
      Otherwise, we could be deleting valid entries that actually
      need to be applied.
      
      This fixes a regression that had been introduced in
      commit b80df9eb (MDEV-21069),
      which aimed to avoid crashes during DROP TABLE of corrupted tables.
      dfa2d0bc
  12. 07 Jun, 2021 1 commit
  13. 06 Jun, 2021 2 commits
    • Otto Kekäläinen's avatar
      Revert "CONNECT: move jar files to /usr/share and include them in DEBs" · 3c922d6d
      Otto Kekäläinen authored
      This partially reverts commit d7321893.
      
      The *.jar files are not being built and all Debian builds are failing
      as dh_install stops on missing files. To build them we would need to also
      add new Java build dependencies.
      
      In a stable release (10.2->10.5) we shouldn't add new files and certainly
      not any new build dependencies, so reverting commit.
      
      Also, the files are located in a different path, and already included
      in the mariadb-test-data package:
      
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JavaWrappers.jar
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/Mongo2.jar
        /usr/share/mysql/mysql-test/plugin/connect/connect/std_data/Mongo3.jar
      
      This change needs to be redesigned and applies only on 10.6 or newer.
      3c922d6d
    • Vladislav Vaintroub's avatar
      MDEV-23815 Windows : mysql_upgrade_wizard fails, if service name has spaces · 9f9a925c
      Vladislav Vaintroub authored
      The fix is to quote service name parameter, when it is passed to
      mysql_upgrade_service subprocess.
      9f9a925c
  14. 05 Jun, 2021 1 commit
  15. 04 Jun, 2021 3 commits
    • Vladislav Vaintroub's avatar
      MDEV-21373 DBUG compilation - bad synchronization in ha_heap::external_lock() · b1b4d67b
      Vladislav Vaintroub authored
      ha_heap::external_lock contains some consistency checks for the table,#
      in a debug compilation.
      
      This code suffers from lack of synchronization, in a rare case
      where mysql_lock_tables() fail, and unlock is forced, even if lock was
      not previously taken.
      
      To workaround, require EXTRA_DEBUG compile definition in order to activate
      the consistency checks.The code still might be useful in some cases - but
      the audience are developers looking for errors in single-threaded scenarios,
      rather than multiuser stress-tests.
      b1b4d67b
    • Anel Husakovic's avatar
      MDEV-25777: JAVA_INCLUDE_PATH and JAVA_INCLUDE_PATH2 not found with out of... · 7eed97ed
      Anel Husakovic authored
      MDEV-25777: JAVA_INCLUDE_PATH and JAVA_INCLUDE_PATH2 not found with out of source configuration and Ninja generator
      
      - As solution `PLUGIN_CONNECT=NO` use early check to disable plugin:
        Solution suggested by wlad@mariadb.com
      - `JNI_FOUND` is a internal result variable and should be set with
      cached library and header variables (like `JAVA_INCLUDE_PATH`) defined.
        * Note: wrapper cmake/FindJNI.cmake runs first time and cmake native Find<module> returns only cached variable, like `JAVA_INCLUDE_PATH`, results variable are not cached).
      
      Reviewed by: serg@mariadb.com
      7eed97ed
    • Marko Mäkelä's avatar
  16. 03 Jun, 2021 1 commit
    • Igor Babaev's avatar
      MDEV-25714 Join using derived with aggregation returns incorrect results · 663bc849
      Igor Babaev authored
      If a join query uses a derived table (view / CTE) with GROUP BY clause then
      the execution plan for such join may employ split optimization. When this
      optimization is employed the derived table is not materialized. Rather only
      some partitions of the derived table are subject to grouping. Split
      optimization can be applied only if:
      - there are some indexes over the tables used in the join specifying the
        derived table whose prefixes partially cover the field items used in the
        GROUP BY list (such indexes are called splitting indexes)
      - the WHERE condition of the join query contains conjunctive equalities
        between columns of the derived table that comprise major parts of
        splitting indexes and columns of the other join tables.
      
      When the optimizer evaluates extending of a partial join by the rows of the
      derived table it always considers a possibility of using split optimization.
      Different splitting indexes can be used depending on the extended partial
      join. At some rare conditions, for example, when there is a non-splitting
      covering index for a table joined in the join specifying the derived table
      usage of a splitting index to produce rows needed for grouping may be still
      less beneficial than usage of such covering index without any splitting
      technique. The function JOIN_TAB::choose_best_splitting() must take this
      into account.
      
      Approved by Oleksandr Byelkin <sanja@mariadb.com>
      663bc849
  17. 02 Jun, 2021 2 commits
    • Sergei Golubchik's avatar
      MDEV-25672 table alias from previous statement interferes later commands · 5c896472
      Sergei Golubchik authored
      only perform the "correct table name" check for *new* generated columns,
      but not for already existing ones - they're guaranteed to be valid
      5c896472
    • Igor Babaev's avatar
      MDEV-25635 Assertion failure when pushing from HAVING into WHERE of view · 2e789108
      Igor Babaev authored
      This bug could manifest itself after pushing a where condition over a
      mergeable derived table / view / CTE DT into a grouping view / derived
      table / CTE V whose item list contained set functions with constant
      arguments such as MIN(2), SUM(1) etc. In such cases the field references
      used in the condition pushed into the view V that correspond set functions
      are wrapped into Item_direct_view_ref wrappers. Due to a wrong implementation
      of the virtual method const_item() for the class Item_direct_view_ref the
      wrapped set functions with constant arguments could be erroneously taken
      for constant items. This could lead to a wrong result set returned by the
      main select query in 10.2. In 10.4 where a possibility of pushing condition
      from HAVING into WHERE had been added this could cause a crash.
      
      Approved by Sergey Petrunya <sergey.petrunya@mariadb.com>
      2e789108