1. 12 Aug, 2020 2 commits
    • Marko Mäkelä's avatar
      MDEV-20672 Inconsistent usage message for innodb_compression_algorithm · 101ce10d
      Marko Mäkelä authored
      The usage message for the innodb_compression_algorithm system variable
      did not list snappy, which was added as an optional compression algorithm
      in MariaDB 10.1.3 and might actually work since
      commit 90c52e52 (MDEV-12615)
      in MariaDB 10.1.24.
      
      Unfortunately, we will include also unavailable compression algorithms
      in the list, because ENUM parameters allow numeric values, and we do
      not want innodb_compression_algorithm=3 to change meaning depending on
      the way how the source code was compiled.
      101ce10d
    • Marko Mäkelä's avatar
      MDEV-19526 heap number overflow on innodb_page_size=64k · efd8af53
      Marko Mäkelä authored
      InnoDB only reserves 13 bits for the heap number in the record header,
      limiting the heap number to be at most 8191. But, when using
      innodb_page_size=64k and secondary index records of 7 bytes each,
      it is possible to exceed the maximum heap number.
      
      btr_cur_optimistic_insert(): Let the operation fail if the
      maximum number of records would be exceeded.
      
      page_mem_alloc_heap(): Move to the same compilation unit with the
      only caller, and let the operation fail if the maximum heap number
      has been allocated already.
      efd8af53
  2. 11 Aug, 2020 2 commits
    • Julius Goryavsky's avatar
      MDEV-21526: mysqld_multi no longer works with different server binaries · 7ad4709a
      Julius Goryavsky authored
      The problem is caused by the fact that adding the
      --defaults-group-suffix option to fix MDEV-18863 causes
      mysqld to read all options from the appropriate sections
      of the config file, including options specific to mysqld_multi.
      Reading unknown options (which are not supported by mysqld)
      causes mysqld to terminate with an error.
      
      However, the MDEV-18863 problem has been completely fixed
      by passing options on the command line, and now there is no
      need to specify the --defaults-group-suffix option (we just
      need to give priority to options passed through the command
      line, so as not to break MDEV-18863).
      7ad4709a
    • Alexander Barkov's avatar
      Fixing sporading builtbot test failures happening at '00:00:00' sharp · caf10590
      Alexander Barkov authored
      Some tests relied on the fact that DATETIME->DATE conversion
      always produce a truncation (with a warning). This is not the case
      when the SQL statement is executed at current time '00:00:00' sharp.
      
      Adding a new SET TIMESTAMP statements to make sure time is not '00:00:00'.
      caf10590
  3. 10 Aug, 2020 4 commits
    • Marko Mäkelä's avatar
      MDEV-16115 Hang after reducing innodb_encryption_threads · 7f67ef14
      Marko Mäkelä authored
      The test encryption.create_or_replace would occasionally fail,
      because some fil_space_t::n_pending_ops would never be decremented.
      
      fil_crypt_find_space_to_rotate(): If rotate_thread_t::should_shutdown()
      holds due to innodb_encryption_threads having been reduced, do
      release the reference.
      
      fil_space_remove_from_keyrotation(), fil_space_next(): Declare the
      functions static, simplify a little, and define in the same compilation
      unit with the only caller, fil_crypt_find_space_to_rotate().
      
      fil_crypt_key_mutex: Remove (unused).
      7f67ef14
    • Daniel Bartholomew's avatar
      bump the VERSION · 3e3da164
      Daniel Bartholomew authored
      3e3da164
    • Oleksandr Byelkin's avatar
    • Daniel Black's avatar
      MDEV-23386: mtr: main.mysqld--help autosized table{-open,}-cach and max-connections · deb36558
      Daniel Black authored
      Example of the failure:
      http://buildbot.askmonty.org/buildbot/builders/bld-p9-rhel7/builds/4417/steps/mtr/logs/stdio
      ```
      main.mysqld--help 'unix'                 w17 [ fail ]
              Test ended at 2020-06-20 18:51:45
      
      CURRENT_TEST: main.mysqld--help
      --- /opt/buildbot-slave/bld-p9-rhel7/build/mysql-test/main/mysqld--help.result	2020-06-20 16:06:49.903604179 +0300
      +++ /opt/buildbot-slave/bld-p9-rhel7/build/mysql-test/main/mysqld--help.reject	2020-06-20 18:51:44.886766820 +0300
      @@ -1797,10 +1797,10 @@
       sync-relay-log-info 10000
       sysdate-is-now FALSE
       system-versioning-alter-history ERROR
      -table-cache 421
      +table-cache 2000
       table-definition-cache 400
      -table-open-cache 421
      -table-open-cache-instances 1
      +table-open-cache 2000
      +table-open-cache-instances 8
       tc-heuristic-recover OFF
       tcp-keepalive-interval 0
       tcp-keepalive-probes 0
      
      mysqltest: Result length mismatch
      ```
      mtr: table_open_cache_basic autosized:
      
      Lets assume that >400 are available and that
      we can set the result back to the start value.
      
      All of these system variables are autosized and can
      generate MTR output differences.
      
      Closes #1527
      deb36558
  4. 06 Aug, 2020 3 commits
  5. 05 Aug, 2020 1 commit
  6. 04 Aug, 2020 3 commits
    • Sergei Golubchik's avatar
      a09a06d5
    • Sergei Golubchik's avatar
      5.6.49-89.0 · 2adaaeba
      Sergei Golubchik authored
      2adaaeba
    • Sachin's avatar
      MDEV-23089 rpl_parallel2 fails in 10.5 · e3c18b8e
      Sachin authored
      Problem:- rpl_parallel2 was failing non-deterministically
      Analysis:-
      When FLUSH TABLES WITH READ LOCK is executed, it will allow all worker
      threads to complete their ongoing transactions and then it will pause them.
      At this state FTWRL will proceed to acquire global read lock. FTWRL first
      blocks threads from starting new commits, then upgrades the lock to block
      commit of existing transactions.
        Step1:
          FLUSH TABLES WITH READ LOCK - Blocks new commits
        Step2:
          * STOP SLAVE command enables 'force_abort=1' which unblocks workers,
            they continue to execute events.
          * T1: Waits in 'record_gtid' call to update 'gtid_slave_pos' table with
            its current GTID, but it is blocked becuase of Step1.
          * T2: Holds COMMIT lock and waits for T1 to commit.
        Step3:
          FLUSH TABLES WITH READ LOCK - Waiting to get BLOCK_COMMIT.
      This results in deadlock. When STOP SLAVE command allows paused workers to
      proceed, workers should skip the execution of all further events, similar
      to 'conservative' parallel mode.
      Solution:-
      We will assign 1 to skip_event_group when we are aborted in do_ftwrl_wait.
      rpl_parallel_entry->pause_sub_id is only reset when force_abort is off in
      rpl_pause_after_ftwrl.
      e3c18b8e
  7. 03 Aug, 2020 2 commits
  8. 02 Aug, 2020 2 commits
  9. 30 Jul, 2020 3 commits
  10. 29 Jul, 2020 7 commits
  11. 28 Jul, 2020 1 commit
    • Karthik Kamath's avatar
      MDEV-15961: Fix stacktraces under FreeBSD (aarch64) · e6cb263e
      Karthik Kamath authored
      Largely based on MySQL commit
      https://github.com/mysql/mysql-server/commit/75271e51d60bce8683423b208cbb43b11ca6060e
      
      MySQL Ref:
          BUG#24566529: BACKPORT BUG#23575445 TO 5.6
      
          (cut)
          Also, the PTR_SANE macro which tries to check if a pointer
          is invalid (used when printing pointer values in stack traces)
          gave false negatives on OSX/FreeBSD. On these platforms we
          now simply check if the pointer is non-null. This also removes
          a sbrk() deprecation warning when building on OS X. (It was
          before only disabled with building using XCode).
      
      Removed execinfo path of MySQL patch that was already included.
      
      sbrk doesn't exist on FreeBSD aarch64.
      
      Removed HAVE_BSS_START based detection and replaced with __linux__
      as it doesn't exist on OSX, Solaris or Windows.  __bss_start
      exists on mutiple Linux architectures.
      
      Tested on FreeBSD and Linux x86_64. Being in FreeBSD ports for 2
      years implies a good testing there on all FreeBSD architectures there
      too. MySQL-8.0.21 code is functionally identical to original commit.
      e6cb263e
  12. 27 Jul, 2020 5 commits
  13. 25 Jul, 2020 1 commit
  14. 24 Jul, 2020 3 commits
    • Sergei Petrunia's avatar
      MDEV-23221: A subquery causes crash · b000d695
      Sergei Petrunia authored
      * Fix the crash: IN-to-EXISTS rewrite causes an error (and so
        JOIN::optimize() fails with an error, too), don't call
        update_used_tables(). Terminate the query execution instead.
      
      * Fix the cause of the error in the IN-to-EXISTS rewrite: don't do
        the rewrite if doing it will cause an error of this kind:
        This version of MariaDB doesn't yet support 'SUBQUERY in ROW in left
        expression of IN/ALL/ANY'
      
      * Fix another issue exposed by this testcase:
        JOIN::setup_subquery_caches() may be invoked before any select has
        saved its query plan, and will crash because none of the SELECTs
        has called create_explain_query_if_not_exists() to create the Explain
        Data Structure for this SELECT.
      
      TODO: When merging this to 10.2, remove the poorly-placed call to
      create_explain_query_if_not_exists made by fix for M_D_E_V-16153
      b000d695
    • Daniel Black's avatar
      mysql_install_db: help lists --defaults-file twice · 4b97f14a
      Daniel Black authored
      Removed duplicate.
      
      Also move the --no-defaults option close to the other "default*"
      options.
      4b97f14a
    • Teemu Ollakka's avatar
      MDEV-23272 Galera stack-use-after-scope error with ASAN build · 8ef41c60
      Teemu Ollakka authored
      THD proc info was assigned from stack allocated temporary buffer
      which went out of scope immediately after assignment.
      
      Fixed by removing the use of temp buffer and assign proc info
      from string literal.
      8ef41c60
  15. 23 Jul, 2020 1 commit