1. 20 Mar, 2021 11 commits
    • Monty's avatar
      Fixed crash with listen_sockets when shutdown and kill was run simultaneously · 93bb755d
      Monty authored
      Problem was that listen_sockets where not properly protected.
      Fixed by adding LOCK_start_thread around closing socket loop.
      
      Other things:
      - Removed not necessary test in close_socket(). With the current code
        'sock' can never be INVALID_SOCKET.
      93bb755d
    • Monty's avatar
      Changed std::vector<MYSQL_SOCKET> listen_sockets to Dynamic_array · d7d10232
      Monty authored
      Main reason for this was there was a crash in shutdown of the server
      in binlog_encryption.encryption_combo-mix and some other tests because
      something in listen_sockets where not initialized. Changing to
      Dynamic_array caused things to work.
      Other reason for removing std::vector was that it is harder to debug,
      and not integrated with DBUG, safemalloc, valgrind or memory
      calculation and cause code explosions (extra code generated for each
      std::vector type used).
      d7d10232
    • Monty's avatar
      Fixed wrong initializations of Dynamic_array · cccc96d6
      Monty authored
      Other things:
      - Added size() function to Dynamic_array()
      cccc96d6
    • Monty's avatar
      Aria: Add transaction id to log of create table · 8f33f49e
      Monty authored
      In the case of a crash directly after a creation of an Aria table,
      Aria recovery would think that the table was from another system and
      require a repair of the table and inform that the table is 'zerofilled".
      This would cause no harm, but was confusing to see when testing atomic
      alter table.
      
      Fixed by logging the create transaction id to the log.
      
      Other things:
      - Added "show table status from sys" to maria_empy_logs. This ensures one
        does not get any zerofill warnings when sys/sys_config is used by other
        tests.
      - aria_chk --describe now prints a warning if the table was moved from
        another system.
      - Logging of truncate (maria_delete_all_rows) is changed to use the
        current trid for the create table.
        This is to ensure that we do not run into the same problem with truncate.
      - Changed back sys_config table to Aria as this patch should fix the
        "zerofill" problem in buildbot.
      - Added scripts/mysql_sys_schema.sql to .gitignore
      8f33f49e
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 1055cf96
      Marko Mäkelä authored
      1055cf96
    • Marko Mäkelä's avatar
      CMake cleanup: Make WITH_URING, WITH_PMEM Boolean · e8113f75
      Marko Mäkelä authored
      The new default values WITH_URING:BOOL=OFF, WITH_PMEM:BOOL=OFF imply
      that the dependencies are optional.
      An explicit request WITH_URING=ON or WITH_PMEM=ON will cause the
      build to fail if the requested dependencies are not available.
      
      Last, to prevent a feature to be built in even though the built-time
      dependencies are available, the following can be used:
      
      cmake -DCMAKE_DISABLE_FIND_PACKAGE_URING=1
      cmake -DCMAKE_DISABLE_FIND_PACKAGE_PMEM=1
      
      This cleanup was suggested by Vladislav Vaintroub.
      e8113f75
    • Marko Mäkelä's avatar
      MDEV-25211 Remove useless counter Innodb_buffered_aio_submitted · e7ddf466
      Marko Mäkelä authored
      In commit 412533b4 (MDEV-18582),
      one of the counters that was ported from XtraDB is useless.
      Innodb_buffered_aio_submitted would be 0 or 1, depending on whether
      is_linux_native_aio_supported() was executed to the point where
      it would be incremented.
      
      Let us remove this counter, because it has no practical value.
      Even if its value were 1, io_setup() can still fail and we may
      end up with innodb_use_native_aio=0.
      e7ddf466
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 8570a6a0
      Marko Mäkelä authored
      8570a6a0
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · d8dc8537
      Marko Mäkelä authored
      d8dc8537
    • David Carlier's avatar
      mariabackup little FreeBSD update support. · 1bacab8a
      David Carlier authored
      In this platform, it s better not to rely on optional proc filesystem presence.
       Using native API to retrieve binary absolute path instead.
      1bacab8a
    • Daniel Black's avatar
      MDEV-25207 mysql_install_db doesn't create sys schema (fix) · 4eeea4e2
      Daniel Black authored
      Fix for out-of-tree builds.
      
      mysql_sys_schema.sql is a CMAKE_CURRENT_BINARY_DIR file so
      use the buildpkgdatadir.
      4eeea4e2
  2. 19 Mar, 2021 17 commits
  3. 18 Mar, 2021 12 commits
    • Vladislav Vaintroub's avatar
      40fd42f7
    • Vladislav Vaintroub's avatar
    • Sergei Petrunia's avatar
      MDEV-23677: Optimizer trace: remove "no predicate for first keypart" (not) · 2b3fd5df
      Sergei Petrunia authored
      Don't remove (reasons given in Jira), instead add test coverage.
      Improve other printout in best_access_path.
      2b3fd5df
    • Igor Babaev's avatar
      MDEV-25112 MIN/MAX aggregation over an indexed column may return wrong result · b34bb81e
      Igor Babaev authored
      If a query with implicit grouping contains in MIN/MAX set function in the
      select list over a column that is a part of an index then the query
      might be subject to MIN/MAX optimization. With this optimization the
      server performs a look-up into an index, fetches a value of the column C
      used in the MIN/MAX function and substitute the MIN/MAX expression for this
      value. This allows to eliminate the table containing C from further join
      processing. In order the optimization to be applied the WHERE condition
      must be a conjunction of simple equality/inequality predicates or/and
      BETWEEN predicates.
      The bug fixed in the patch resulted in fetching a wrong value from the
      index used for MIN/MAX optimization. It may happened when a BETWEEN
      predicate containing the MIN/MAX value followed a strict inequality.
      
      Approved by dmitry.shulga@mariadb.com
      b34bb81e
    • Marko Mäkelä's avatar
      MDEV-23497 fixup: Do not warn for ALTER TABLE conversion · 4903031b
      Marko Mäkelä authored
      Our intention is to make users aware that the ROW_FORMAT=COMPRESSED
      format is on its way to deprecation.  It is an unnecessary annoyance
      to users if we issue a warning when the user is converting a
      ROW_FORMAT=COMPRESSED table to a supported format
      (such as ROW_FORMAT=DYNAMIC).
      
      ha_innobase::is_read_only(): Add a parameter to specify that an
      ALTER TABLE to a supported format has been requested.
      
      ha_innobase::check_if_supported_inplace_alter(): Set the parameter
      when ALTER_OPTIONS to something else than ROW_FORMAT=COMPRESSED
      (and without KEY_BLOCK_SIZE) is being requested.
      
      Thanks to Elena Stepanova for suggesting this.
      4903031b
    • Marko Mäkelä's avatar
      MDEV-24883 fixup: Avoid io_uring in ./mtr --rr · e0c3b5f9
      Marko Mäkelä authored
      Until https://github.com/rr-debugger/rr/issues/2613
      has been addressed, ./mtr --rr will fail to start up the
      server if it has been configured with liburing.
      To make the ./mtr --rr option work out of the box, we will
      disable native asynchronous I/O.
      
      Note: libaio never worked under rr, but it failed more gracefully:
      the emulated io_setup() call would always return an error.
      e0c3b5f9
    • Marko Mäkelä's avatar
      fixup 7627bfa0 · 8d1098a5
      Marko Mäkelä authored
      8d1098a5
    • Vladislav Vaintroub's avatar
      MDEV-9077 - rerecord test result · 7627bfa0
      Vladislav Vaintroub authored
      so that sys.schema_auto_increment_columns returns  correct
      auto_increment_value
      7627bfa0
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · ccfbeafc
      Marko Mäkelä authored
      ccfbeafc
    • Vladislav Vaintroub's avatar
      MDEV-9077 - fix README.md · 7887d453
      Vladislav Vaintroub authored
      Fix confusing documentation. There is no installation necessary for sys schema.
      it is there after mysql_install_db, or mysql_upgrade.
      7887d453
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 190a8312
      Marko Mäkelä authored
      190a8312
    • Marko Mäkelä's avatar
      MDEV-25121: innodb_flush_method=O_DIRECT fails on compressed tables · 12672542
      Marko Mäkelä authored
      Tests with 4096-byte sector size confirm that it is
      safe to use O_DIRECT with page_compressed tables.
      That had been disabled on Linux, in an attempt to fix MDEV-21584
      which had been filed for the O_DIRECT problems earlier.
      
      The fil_node_t::block_size was being set mostly correctly until
      commit 10dd290b (MDEV-17380)
      introduced a regression in MariaDB Server 10.4.4.
      
      fil_node_open_file(): Only avoid setting O_DIRECT on
      ROW_FORMAT=COMPRESSED tables that use KEY_BLOCK_SIZE=1 or 2
      (1024 or 2048 bytes).
      
      fil_ibd_create(): Avoid setting O_DIRECT on ROW_FORMAT=COMPRESSED tables
      that use KEY_BLOCK_SIZE=1 or 2 (1024 or 2048 bytes).
      
      fil_node_t::find_metadata(): Require fstat() to be always invoked
      outside Microsoft Windows, so that fil_node_t::block_size can be set.
      
      fil_node_t::read_page0(): Rely on find_metadata() to assign block_size.
      
      Thanks to Vladislav Vaintroub for testing this on Microsoft Windows
      using an old-fashioned rotational hard disk with 4KiB sector size.
      
      Reviewed by: Vladislav Vaintroub
      
      This is a port of commit 00f620b2
      and commit 6505662c from 10.2.
      12672542