1. 28 Apr, 2020 4 commits
  2. 27 Apr, 2020 10 commits
    • Vlad Lesin's avatar
      MDEV-20230: mariabackup --ftwrl-wait-timeout never times out on explicit · d0150dc1
      Vlad Lesin authored
      lock
      
      --ftwrl-wait-timeout does not finish mariabackup execution when acquired
      backup lock can't be grabbed for the certain amount of time, it just
      waits for a long queries finishing before acquiring the lock to avoid
      unnecessary locking.
      
      This commit extends --ftwrl-wait-timeout so, that mariabackup execution
      is finished if it waits for backup lock during certain amount of time.
      d0150dc1
    • Marko Mäkelä's avatar
      MDEV-7962: Follow-up fix for 10.2 · 581df0df
      Marko Mäkelä authored
      dict_stats_update_if_needed(): Replace the parameter THD*
      with const trx_t& so that trx_t::is_wsrep() can be invoked
      instead of the more expensive wsrep_on().
      
      Replace also other occurrences of wsrep_on() with trx_t::is_wsrep().
      581df0df
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · c06845d6
      Marko Mäkelä authored
      c06845d6
    • Marko Mäkelä's avatar
      MDEV-7962 wsrep_on() takes 0.14% in OLTP RO · edbdfc2f
      Marko Mäkelä authored
      The function wsrep_on() was being called rather frequently
      in InnoDB and XtraDB. Let us cache it in trx_t and invoke
      trx_t::is_wsrep() instead.
      
      innobase_trx_init(): Cache trx->wsrep = wsrep_on(thd).
      
      ha_innobase::write_row(): Replace many repeated calls to current_thd,
      and test the cheapest condition first.
      edbdfc2f
    • Sergei Golubchik's avatar
      MDEV-22271 Excessive stack memory usage due to WSREP_LOG · dd4124c2
      Sergei Golubchik authored
      fix embedded innodb_plugin tests
      
      followup for 7198c6ab
      dd4124c2
    • Sergei Golubchik's avatar
      MDEV-22078 MariaDB-compat missing from MariaDB 10.4 CentOS 8 Yum Repo · f462fbac
      Sergei Golubchik authored
      Backport INSALL_SYMLINK cmake macro from 10.3.
      It'll make libmysqlclient_r.* symlinks to link to the actual
      shared library file, not to another symlink.
      
      As a bonus it'll fix cmake warning about deprecated LOCATION property
      f462fbac
    • Marko Mäkelä's avatar
      MDEV-22203: WSREP_ON is unnecessarily expensive to evaluate · 6be05ceb
      Marko Mäkelä authored
      This is a backport of the applicable part of
      commit 93475aff and
      commit 2c39f69d
      from 10.4.
      
      Before 10.4 and Galera 4, WSREP_ON is a macro that points to
      a global Boolean variable, so it is not that expensive to
      evaluate, but we will add an unlikely() hint around it.
      
      WSREP_ON_NEW: Remove. This macro was introduced in
      commit c863159c
      when reverting WSREP_ON to its previous definition.
      
      We replace some use of WSREP_ON with WSREP(thd), like it was done
      in 93475aff. Note: the macro
      WSREP() in 10.1 is equivalent to WSREP_NNULL() in 10.4.
      
      Item_func_rand::seed_random(): Avoid invoking current_thd
      when WSREP is not enabled.
      6be05ceb
    • Marko Mäkelä's avatar
      Fix clang 10 warnings · 758fbec6
      Marko Mäkelä authored
      _ma_fetch_keypage(): Correct an assertion that used to always hold.
      Thanks to clang -Wint-in-bool-context for flagging this.
      
      double_to_datetime_with_warn(): Suppress -Wimplicit-int-float-conversion
      by adding a cast. LONGLONG_MAX converted to double will actually be
      LONGLONG_MAX+1.
      758fbec6
    • Marko Mäkelä's avatar
      6a3fc110
    • Marko Mäkelä's avatar
      MDEV-22271: Follow-up fix of --embedded · d28ee189
      Marko Mäkelä authored
      Since commit 7198c6ab
      the ./mtr --embedded tests would fail to start innodb_plugin
      because of an undefined reference to the symbol wsrep_log().
      
      Let us define a stub for that function. The embedded server
      is never built WITH_WSREP, but there are no separate storage
      engine builds for the embedded server. Hence, by default,
      the dynamic InnoDB storage engine plugin would be built WITH_WSREP
      and it would fail to load into the embedded server library due to
      a reference to the undefined symbol.
      d28ee189
  3. 24 Apr, 2020 3 commits
    • Eugene Kosov's avatar
      cleanup THR_KEY_mysys · 2c5067b6
      Eugene Kosov authored
      read TLS with my_thread_var
      write TLS with set_mysys_var()
      
      my_thread_var is no longer __attribute__ ((const)): this attribute
      is simply incorrect here. Read gcc manual for more information.
      sql/threadpool_generic.cc fails with that attribute.
      2c5067b6
    • Marko Mäkelä's avatar
      Cleanup: Make row_upd_store_row() static · da7564ed
      Marko Mäkelä authored
      da7564ed
    • Marko Mäkelä's avatar
      Cleanup: Remove a constant parameter · 57ec41d6
      Marko Mäkelä authored
      row_vers_vc_matches_cluster(): Remove the parameter in_purge,
      which was always passed as in_purge=true.
      
      This parameter became constant in
      mysql/mysql-server@1dec14d346ac55fe72989dccb071f84b3b0d3bd6
      and it always was constant in MariaDB starting from the
      introduction of the function in
      commit 2e814d47 (MariaDB 10.2.2).
      57ec41d6
  4. 23 Apr, 2020 2 commits
  5. 22 Apr, 2020 4 commits
  6. 21 Apr, 2020 1 commit
    • Vlad Lesin's avatar
      MDEV-19347: Mariabackup does not honor ignore_db_dirs from server · 0efe1971
      Vlad Lesin authored
      config.
      
      The solution is to read the system variable value on startup and to fill
      databases_exclude_hash.
      
      xb_load_list_string() became non-static and was reformatted. The system
      variable value is read and processed in get_mysql_vars(), which was also
      reformatted.
      0efe1971
  7. 18 Apr, 2020 6 commits
  8. 17 Apr, 2020 2 commits
    • Marko Mäkelä's avatar
      Fix GCC 10 -Woverflow · ad4b7056
      Marko Mäkelä authored
      maria_page_crc_check_index(): Do not attempt to convert
      HA_ERR_WRONG_CRC (176) to my_bool (char).
      On platforms where char is signed, the 176 will be converted to -80.
      
      It turns out that the callers only care whether the result is zero.
      Let us return 1 in this case, like we do in all other error cases.
      ad4b7056
    • Marko Mäkelä's avatar
      MDEV-22271 Excessive stack memory usage due to WSREP_LOG · 7198c6ab
      Marko Mäkelä authored
      Several tests that involve stored procedures fail on 10.4 kvm-asan
      (clang 10) due to stack overrun. The main contributor to this stack
      overrun is mysql_execute_command(), which is invoked recursively
      during stored procedure execution.
      
      Rebuilding with cmake -DWITH_WSREP=OFF shrunk the stack frame size
      of mysql_execute_command() by more than 10 kilobytes in a
      WITH_ASAN=ON, CMAKE_BUILD_TYPE=Debug build. The culprit
      turned out to be the macro WSREP_LOG, which is allocating a
      separate 1KiB buffer for every occurrence.
      
      We replace the macro with a function, so that the stack will be
      allocated only when the function is actually invoked. In this way,
      no stack space will be wasted by default (when WSREP and Galera
      are disabled).
      
      This backports commit b6c5657e
      from MariaDB 10.3.1.
      
      Without ASAN, compilers can be smarter and optimize the stack usage.
      The original commit message mentions that 1KiB was saved on GCC 5.4,
      and 4KiB on Mac OS X Lion, which presumably uses a clang-based compiler.
      7198c6ab
  9. 16 Apr, 2020 2 commits
  10. 15 Apr, 2020 3 commits
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 9e43ca8e
      Marko Mäkelä authored
      9e43ca8e
    • Marko Mäkelä's avatar
      MDEV-21549 IMPORT TABLESPACE fails to adjust all tablespace ID in root pages · f8166a05
      Marko Mäkelä authored
      After MDEV-12353, the consistency check that I originally added for
      commit 1b9fe0bb
      (InnoDB Plugin for MySQL 5.1) started randomly failing.
      
      It turns out that the IMPORT TABLESPACE code was always incorrect:
      it did not update the (redundantly stored) tablespace ID
      in index tree root pages. It only does that for page headers
      and BLOB pointers.
      
      PageConverter::update_index_page(): Update the tablespace ID
      in the BTR_SEG_TOP and BTR_SEG_LEAF of index root pages.
      
      This is a backport of commit b8b3edff.
      f8166a05
    • Marko Mäkelä's avatar
      mbstream: Remove duplicate definition of datasink_buffer · a215e213
      Marko Mäkelä authored
      For some reason, when mbstream is compiled with GCC 10,
      ld will fail to link it due to a multiple definition of
      datasink_buffer. The code appears to have been like that
      since the very beginning.
      
      Let us remove the duplicate dummy definition.
      a215e213
  11. 14 Apr, 2020 3 commits