1. 26 Feb, 2021 2 commits
    • Marko Mäkelä's avatar
      MDEV-24789: Reduce lock_sys.wait_mutex contention · 7cf4419f
      Marko Mäkelä authored
      A performance regression was introduced by
      commit e71e6133 (MDEV-24671)
      and mostly addressed by
      commit 455514c8.
      
      The regression is likely caused by increased contention
      lock_sys.latch (former lock_sys.mutex), possibly indirectly
      caused by contention on lock_sys.wait_mutex. This change aims to
      reduce both, but further improvements will be needed.
      
      lock_wait(): Minimize the lock_sys.wait_mutex hold time.
      
      lock_sys_t::deadlock_check(): Add a parameter for indicating
      whether lock_sys.latch is exclusively locked.
      
      trx_t::was_chosen_as_deadlock_victim: Always use atomics.
      
      lock_wait_wsrep(): Assume that no mutex is being held.
      
      Deadlock::report(): Always kill the victim transaction.
      
      lock_sys_t::timeout: New counter to back MONITOR_TIMEOUT.
      7cf4419f
    • Sachin's avatar
      MDEV-7409 On RBR, extend the PROCESSLIST info to include at least the name of... · d9898c9a
      Sachin authored
      MDEV-7409 On RBR, extend the PROCESSLIST info to include at least the name of the recently used table
      
      When RBR is used, add the db name to db Field and table name to Status
      Field  of the "SHOW FULL PROCESSLIST" command for SQL thread.
      d9898c9a
  2. 25 Feb, 2021 1 commit
    • Jan Lindström's avatar
      MENT-411 : Implement wsrep_replicate_aria · 27d66d64
      Jan Lindström authored
      Introduced two new wsrep_mode options
      * REPLICATE_MYISAM
      * REPLICATE_ARIA
      
      Depracated wsrep_replicate_myisam parameter and we use
      wsrep_mode = REPLICATE_MYISAM instead.
      
      This required small refactoring of wsrep_check_mode_after_open_table
      so that both MyISAM and Aria are handled on required DML cases.
      Similarly, added Aria to wsrep_should_replicate_ddl to handle DDL
      for Aria tables using TOI. Added test cases and improved MyISAM testing.
      Changed use of wsrep_replicate_myisam to wsrep_mode = REPLICATE_MYISAM
      27d66d64
  3. 24 Feb, 2021 5 commits
  4. 23 Feb, 2021 11 commits
  5. 22 Feb, 2021 21 commits
    • Sergei Golubchik's avatar
      34fcd726
    • Monty's avatar
      MDEV-24929 Server crash in thr_multi_unlock or in get_schema_tables_result · 640f4231
      Monty authored
      This was caused by two different bugs:
      1) Information_schema tables where not locked by lock_tables, but
         get_lock_data() was not filtering these out. This caused a crash when
         mysql_unlock_some_tables() tried to unlock tables early, including
         not locked information schema tables.
      
      Fixed by not locking SYSTEM_TMP_TABLES
      
      2) In some cases the optimizer will notice that we do not need to read
         the information_schema tables at all. In this case
         join_tab->read_record is not set, which caused a crash in
         get_schema_tables_result()
      
      Fixed by ignoring const tables in get_schema_tables_result()
      640f4231
    • Sergei Golubchik's avatar
      Merge branch '10.2' into 10.3 · 0ab1e391
      Sergei Golubchik authored
      0ab1e391
    • Sergei Golubchik's avatar
      ca126d96
    • Sergei Golubchik's avatar
      fix binlog_xa_recover test · 3c021485
      Sergei Golubchik authored
      1. wait for the binlog thread to reach the certain state, don't use
         a debug_sync that's incorrectly placed to detect the state
      2. no need to do a (non-deterministic) `show binlog events` to verify
         what is guaranteed by the directly preceding line
      3c021485
    • Sergei Golubchik's avatar
      cleanup: renames, no need to create a new .inc file · bb98c6bf
      Sergei Golubchik authored
      if it's the whole content of a test anyway.
      bb98c6bf
    • Sergei Golubchik's avatar
      mtr fixes for old (5.10.1) perl · 7fe351ab
      Sergei Golubchik authored
      7fe351ab
    • Sergei Golubchik's avatar
      support for mtr --valgdb · 77c23c62
      Sergei Golubchik authored
      add a new "debugger" to mtr, that runs the executable
      under valgrind in gdb. valgrind pid is auto-detected,
      but the delay (sleep) and vgdb path are hard-coded for now
      77c23c62
    • Sergei Golubchik's avatar
      unify mtr handling of debuggers · feacc0aa
      Sergei Golubchik authored
      "debugger" is anything that wraps execution of a target
      binary (mysqld or mysqltest). Currently the list includes:
      gdb, ddd, dbx, lldb, valgrind, strace, ktrace, rr,
      devenv, windbg, vsjitdebugger.
      
      for every debugger xxx, mtr will recognize four options:
      --xxx, --boot-xxx, --manual-xxx, --client-xxx.
      They all support an optional "=string" argument. String
      being a semicolon-separated list of commands (e.g. for gdb)
      or one (not semicolon-separated) command line of options
      (e.g. for valgrind). Or both (e.g. --gdb='-quiet -nh;info files'
      
      In embedded both --xxx and --client-xxx work.
      
      Functionality changed/removed:
      * --rr-args is gone
      * --rr-dir is gone
      * --manual-debug is gone
      * --debugger={devenv|vc|windbg|vc_express|vsjitdebugger} is gone
      * --strace-option is gone
      * --stracer={strace|ktrace} is gone
      * --valgrind only enables it for the server, not for everything
      * --valgrind-all is gone
      * --valgrind-mysqltest is gone
      * --valgrind-mysqld is gone
      * --valgrind-options is gone
      * --valgrind-option is gone
      * --valgrind-path is gone
      * --callgrind is gone
      * one cannot combine --valgrind --gdb anymore
      * valgrind report doesn't add a fake test line to the output
      * vc and vcexpress on windows are no longer supported
      feacc0aa
    • Sergei Golubchik's avatar
      cleanup: remove dead code in mtr · 3b0b4e61
      Sergei Golubchik authored
      3b0b4e61
    • Sergei Golubchik's avatar
      cleanup: stat tables · c4f01334
      Sergei Golubchik authored
      don't allocate Column_statistics_collected objects that won't
      be used.
      
      minor style fixes (StringBuffer<>, etc)
      c4f01334
    • Sergei Golubchik's avatar
      MDEV-23753: SIGSEGV in Column_stat::store_stat_fields · 06a791aa
      Sergei Golubchik authored
      only collect persistent stats for columns explicitly listed
      by the user in the  ANALYZE TABLE PERSISTENT FOR COLUMNS (...)
      clause. The engine can extend table->read_set as much as
      it wants, it should not affect the collected statistics.
      
      Test case from the 3b94309a applies - it used to crash,
      because ha_partition extended table->read_set after the loop that
      initialized some objects based on bits in the read_set but before the
      loop that used these objects based on bits in the read_set.
      06a791aa
    • Sergei Golubchik's avatar
      Revert "MDEV-23753: SIGSEGV in Column_stat::store_stat_fields" · caad32ca
      Sergei Golubchik authored
      This reverts the commit 3b94309a but keeps the test
      
      Because the fix is a hack that isn't supposed to do anything,
      and relies on a side-effect of rnd_init inside ha_partition.
      
      A different fix is coming up.
      caad32ca
    • Sergei Golubchik's avatar
      a638f157
    • Igor Babaev's avatar
      MDEV-24936 EXPLAIN for query based on table value constructor lacks info · a5b18613
      Igor Babaev authored
                 on used subqueries
      
      If a query was based on a table value constructor that contained subqueries
      then EXPLAIN for such query did not contain any lines explaining the
      execution plans of the subqueries.
      This happened because
      - no optimize() method was called for any subquery used by the table value
        constructor when EXPLAIN command for the query was processed;
      - EXPLAIN node created for the table value constructor itself did not
        assume that some child nodes could be attached to it.
      
      Approved by Oleksandr Byelkin <sanja@mariadb.com>
      a5b18613
    • Daniel Bartholomew's avatar
      bump the VERSION · 6aa90974
      Daniel Bartholomew authored
      6aa90974
    • Daniel Bartholomew's avatar
      bump the VERSION · a49ce0bf
      Daniel Bartholomew authored
      a49ce0bf
    • Daniel Bartholomew's avatar
      bump the VERSION · 7b8dacc4
      Daniel Bartholomew authored
      7b8dacc4
    • Daniel Bartholomew's avatar
      bump the VERSION · 85bec9d6
      Daniel Bartholomew authored
      85bec9d6
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-24863 AHI entries mismatch with the index while reloading the evicted tables. · d7fc4f52
      Thirunarayanan Balathandayuthapani authored
      - This is caused by commit ad6171b9
      (MDEV-22456). InnoDB reloads the evicted table again from dictionary.
      In that case, AHI entries and current index object mismatches
      happens. When index object mismatches then InnoDB should drop
      the page hash AHI entries for the block. In
      btr_search_drop_page_hash_index(), InnoDB should take exclusive
      lock on the AHI latch if index is already freed to avoid the
      freed memory access during buf_pool_resize()
      d7fc4f52
    • Jan Lindström's avatar
      374f4c3f