1. 25 Nov, 2020 2 commits
  2. 24 Nov, 2020 1 commit
  3. 23 Nov, 2020 1 commit
  4. 16 Nov, 2020 1 commit
  5. 14 Nov, 2020 2 commits
  6. 13 Nov, 2020 4 commits
    • Marko Mäkelä's avatar
      MDEV-24188: Merge 10.2 into 10.3 · f9f2f374
      Marko Mäkelä authored
      f9f2f374
    • Marko Mäkelä's avatar
      MDEV-23619: Merge 10.2 into 10.3 · 6fed6de9
      Marko Mäkelä authored
      6fed6de9
    • Marko Mäkelä's avatar
      MDEV-24188 Hang in buf_page_create() after reusing a previously freed page · bb328a2a
      Marko Mäkelä authored
      The fix of MDEV-23456 (commit b1009ae5)
      introduced a livelock between page flushing and a thread that is
      executing buf_page_create().
      
      buf_page_create(): If the current mini-transaction is holding
      an exclusive latch on the page, do not attempt to acquire another
      one, and do not care about any I/O fix.
      
      mtr_t::have_x_latch(): Replaces mtr_t::get_fix_count().
      
      dyn_buf_t::for_each_block(const Functor&) const: A new variant.
      
      rw_lock_own(): Add a const qualifier.
      
      Reviewed by: Thirunarayanan Balathandayuthapani
      bb328a2a
    • Igor Babaev's avatar
      MDEV-23619 MariaDB crash on WITH RECURSIVE UNION ALL (CTE) query · 190e8a4c
      Igor Babaev authored
      Due to a premature cleanup of the unit that specified a recursive CTE
      used in the second operand of union the server fell into an infinite
      loop in the reported test case. In other cases this premature cleanup
      could cause other problems.
      The bug is the result of a not quite correct fix for MDEV-17024. The
      unit that specifies a recursive CTE has to be cleaned only after the
      cleanup of the last external reference to this CTE. It means that
      cleanups of the unit triggered not by the cleanup of a external
      reference to the CTE must be blocked.
      Usage of local table chains in selects to get external references to
      recursive CTEs was not correct either because of possible merges of
      some selects.
      
      Also fixed a minor bug in st_select_lex::set_explain_type() that caused
      typing 'RECURSIVE UNION' instead of 'UNION' in EXPLAIN output for external
      references to a recursive CTE.
      190e8a4c
  7. 12 Nov, 2020 3 commits
    • Sujatha's avatar
      Merge branch '10.2' into 10.3 · bafb011a
      Sujatha authored
      bafb011a
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 150f447a
      Marko Mäkelä authored
      150f447a
    • Sujatha's avatar
      MDEV-4633: multi_source.simple test fails sporadically · 984a06db
      Sujatha authored
      Analysis:
      ========
      Writes to 'rli->log_space_total' needs to be synchronized, otherwise both
      SQL_THREAD and IO_THREAD can try to modify the variable simultaneously
      resulting in incorrect rli->log_space_total.  In the current test scenario
      SQL_THREAD is trying to decrement 'rli->log_space_total' in 'purge_first_log'
      and IO_THREAD is trying to increment the 'rli->log_space_total' in
      'queue_event' simultaneously. Hence test occasionally fails with  result
      mismatch.
      
      Fix:
      ===
      Convert 'rli->log_space_total' variable to atomic type.
      984a06db
  8. 11 Nov, 2020 7 commits
  9. 10 Nov, 2020 4 commits
    • Anel Husakovic's avatar
      MDEV-24130: Cannot launch mariadbd via mysqld_safe · 3bf726f5
      Anel Husakovic authored
      - Patch 95bb3cb8 used `my_which` function in `10.2`
      - Based on patch `355ee687` from 10.3+ `command -v` is used instead of
      `my_which` so we are changing in this patch also
      - `ldconfig` is usually found in `/sbin` so make sure it is added in
      `$PATH` variable
      3bf726f5
    • Anel Husakovic's avatar
      MDEV-23769: MTR can abort before it prints the test result summary · cd927dd3
      Anel Husakovic authored
      - Patch is solving generating report on warning
              To repeat the error run single worker:
              ```
              ./mtr --mysqld=--lock-wait-timeout=-xx 1st 1st --force --parallel 1
              ```
              or `N` workers with `N+1` tests with failures and `force`
              ```
              ./mtr --mysqld=--lock-wait-timeout=-xx 1st 1st grant5 --force --parallel 2
              ```
      - Patch is doing cosmetic fix of `current_test` log file which holds the old log value of test `CURRENT TEST:..` in `mark_log()` in case of `unknown option` and as such
        the logic which is using it's content doesn't output valid log content and doesn't generate valid `$test->{'comment'}` message.asdf
      
      - Closing the socket/handler after the removing the handler from IO for
      consistency
      
      Reviewed by: serg@mariadb.com
      cd927dd3
    • Sergei Petrunia's avatar
      MDEV-24117: Memory management problem (in range optimizer) · dba846ce
      Sergei Petrunia authored
      Adjust the testcase for MariaDB 10.3+ : prevent IN-to-subquery conversion
      optimization from working.
      dba846ce
    • Marko Mäkelä's avatar
      MDEV-24171 index_online_log is instrumented as rw-lock, not mutex · 5171ab80
      Marko Mäkelä authored
      The row_log_t::mutex is a mutex, yet it was instrumented as
      rw-lock in PERFORMANCE_SCHEMA.
      5171ab80
  10. 09 Nov, 2020 5 commits
    • Sergei Golubchik's avatar
      Merge branch '10.2' into 10.3 · 212d92ad
      Sergei Golubchik authored
      212d92ad
    • Igor Babaev's avatar
      MDEV-23811: With large number of indexes optimizer chooses an inefficient plan · bea84aef
      Igor Babaev authored
      This bug could manifest itself for a query with WHERE condition containing
      top level OR formula such that each conjunct contained a single-range
      condition supported by the same index. One of these range conditions must
      be fully covered by another range condition that is used later in the OR
      formula. Additionally at least one of these condition should be ANDed with
      a sargable range condition supported by a different index.
      
      There were several attempts to fix related problems for OR conditions after
      the backport of range optimizer code from MySQL (commit
      0e19f3e3). Unfortunately the first of these
      fixes contained typo remained unnoticed until recently. This typo bug led
      to rejection of valid range accesses. This patch fixed this typo bug.
      The fix revealed another two bugs: one in a constructor for SEL_ARG,
      the other in the function tree_or(). Both are fixed in this patch.
      bea84aef
    • Sergei Petrunia's avatar
      MDEV-24117: Memory management problem ...: Add a testcase · 1404f3be
      Sergei Petrunia authored
      Add a testcase.
      1404f3be
    • Sergei Petrunia's avatar
      MDEV-24117: Memory management problem in statistics state for ... IN · f81eef62
      Sergei Petrunia authored
      Part#1: Revert the patch that caused it:
      
      commit 291be494
      Author: Igor Babaev <igor@askmonty.org>
      Date:   Thu Sep 24 22:02:00 2020 -0700
      
          MDEV-23811: With large number of indexes optimizer chooses an inefficient plan
      f81eef62
    • Marko Mäkelä's avatar
      MDEV-7620: Remove the data structures · d01a034a
      Marko Mäkelä authored
      The instrumentation that was added in
      commit 90635c6f (MDEV-7620)
      was effectively reverted in MariaDB Server 10.2.2, in
      commit 2e814d47
      (which stopped reporting the statistics) and
      commit fec844ac
      (which stopped updating the statistics).
      
      Let us remove the orphan data members to reduce the memory footprint.
      d01a034a
  11. 05 Nov, 2020 2 commits
  12. 04 Nov, 2020 1 commit
  13. 03 Nov, 2020 5 commits
  14. 02 Nov, 2020 2 commits
    • Monty's avatar
      MDEV-23824 SIGSEGV in end_io_cache on REPAIR LOCAL TABLE for Aria table · a876121d
      Monty authored
      Bugs fixed:
      - prepare_for_repair() didn't close all open files if table opened failed
        because of out-of-memory
      - If dd_recreate_table() failed, the data file was not properly restored
        from it's temporary name
      - Aria repair initializing code didn't properly clear all used structs
        before calling error, which caused crashed in memory-free calls.
      - maria_delete_table() didn't register if table open failed. This could
        calls my_error() to be called without returning 1 to the caller, which
        cased failures in my_ok()
      
      Note when merging to 10.5:
      - Remove the #if MYSQL_VERSION from sql_admin.cc
      a876121d
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · e6290a82
      Marko Mäkelä authored
      e6290a82