1. 22 Jun, 2021 1 commit
    • Marko Mäkelä's avatar
      MDEV-25989 Crash (or hang) on startup after restoring backup · e1c953ef
      Marko Mäkelä authored
      If an ALTER TABLE that affected a table with FULLTEXT INDEX was
      in progress while a backup was made, InnoDB would crash or hang
      during the first startup after restoring the backup,
      while trying to drop the #sql-alter- table for the DDL operation.
      
      drop_garbage_tables_after_restore(): Invoke dict_sys.unlock()
      before invoking the FTS functions. Also, invoke purge_sys.stop_FTS()
      in debug builds to silence debug assertions. (Purge is not yet
      running at this point.)
      e1c953ef
  2. 21 Jun, 2021 15 commits
  3. 19 Jun, 2021 7 commits
  4. 18 Jun, 2021 7 commits
  5. 17 Jun, 2021 10 commits
    • Otto Kekäläinen's avatar
      MDEV-20392: Skip ABI check if 'diff' is not found · b7d87bf0
      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.
      
      ## Proof
      
      Running in a clean CentOS 8 container.
      
      ### Before
      
      ```
      $ cmake .
      ...
      -- Looking for cpuid.h
      -- Looking for cpuid.h - found
      -- Looking for x86intrin.h
      -- Looking for x86intrin.h - found
      -- Looking for event.h
      -- Looking for event.h - not found
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /build
      
      $ make
      Scanning dependencies of target abi_check
      CMake Error at cmake/do_abi_check.cmake:82 (MESSAGE):
        ABI check found difference between /build/include/mysql/plugin_audit.h.pp
        and /build/abi_check.out
      
      make[2]: *** [CMakeFiles/abi_check.dir/build.make:57: CMakeFiles/abi_check] Error 1
      make[1]: *** [CMakeFiles/Makefile2:168: CMakeFiles/abi_check.dir/all] Error 2
      make: *** [Makefile:163: all] Error 2
      
      $ yum install -y diffutils
      ...
      Installed:
        diffutils-3.6-6.el8.x86_64
      Complete!
      
      $ make
      [  0%] Built target abi_check
      Scanning dependencies of target INFO_BIN
      [  0%] Built target INFO_BIN
      Scanning dependencies of target INFO_SRC
      [  0%] Built target INFO_SRC
      Scanning dependencies of target wsrep_api_v26
      [  0%] Building C object wsrep-lib/wsrep-API/CMakeFiles/wsrep_api_v26.dir/v26/wsrep_dummy.c.o
      [  0%] Building C object wsrep-lib/wsrep-API/CMakeFiles/wsrep_api_v26.dir/v26/wsrep_gtid.c.o
      [  0%] Building C object wsrep-lib/wsrep-API/CMakeFiles/wsrep_api_v26.dir/v26/wsrep_loader.c.o
      [  0%] Building C object wsrep-lib/wsrep-API/CMakeFiles/wsrep_api_v26.dir/v26/wsrep_uuid.c.o
      [  0%] Linking C static library libwsrep_api_v26.a
      [  0%] Built target wsrep_api_v26
      ```
      
      ### After
      
      ```
      $ make
      Command 'diff' not found. ABI check for /build/server/include/mysql/plugin_audit.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/plugin_ftparser.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/psi/psi_abi_v1.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/psi/psi_abi_v2.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/client_plugin.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/plugin_auth.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/plugin_password_validation.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/plugin_encryption.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/plugin_data_type.h skipped.
      Command 'diff' not found. ABI check for /build/server/include/mysql/plugin_function.h skipped.
      [  0%] Built target abi_check
      [  0%] Built target INFO_SRC
      [  0%] Built target INFO_BIN
      [  0%] Built target wsrep_api_v26
      [  0%] Building CXX object wsrep-lib/src/CMakeFiles/wsrep-lib.dir/server_state.cpp.o
      ```
      
      If diff is installed, those warnings are simply not shown. Builds pass
      without the need to install 'diff'.
      b7d87bf0
    • Vladislav Vaintroub's avatar
      MDEV-25953 Tpool - prevent potential deadlock in simulated AIO · 78bd7d86
      Vladislav Vaintroub authored
      Do not execute user callback just after pwrite. Instead, submit user
      function as task into thread pool. This way, the IO thread would not hog
      aiocb, which is a limited (in Innodb) resource
      78bd7d86
    • Sergei Golubchik's avatar
      update C/C · 59cf1a8a
      Sergei Golubchik authored
      59cf1a8a
    • Dmitry Shulga's avatar
      MDEV-16708: fixed failure of the test sys_vars.sql_select_limit_func · 44db6ffc
      Dmitry Shulga authored
      This test failed in case it was run in PS mode and for embedded server
      
      The reason of test failure was that the following fields
        affected_row, server_status, insert_id
      of the structure MYSQL_STMT weren't update on calling
      mysql_stmt_next_result() in case combination of binary protocol
      and embedded server used.
      44db6ffc
    • Sergei Golubchik's avatar
      MDEV-16708: correct server side cursor detection in embedded · 3d752f0a
      Sergei Golubchik authored
      fixes a bunch of tests failures in --ps --embed
      
      also, don't use cli_advanced_command().
      3d752f0a
    • Sergei Golubchik's avatar
    • Sergei Golubchik's avatar
      MDEV-16708: spurious ER_NEED_REPREPARE for gtid_slave_pos and event_scheduler · aedf3143
      Sergei Golubchik authored
      do not try to detect metadata change (and reprepare) for
      internal short-lived TABLE_LIST objects that couldn't have
      possibly lived long enough to see prepare and cache the metadata.
      aedf3143
    • Dmitry Shulga's avatar
      MDEV-16708: more fixes to test cases · 510662e8
      Dmitry Shulga authored
      510662e8
    • Dmitry Shulga's avatar
    • Dmitry Shulga's avatar