Release Notes for MariaDB Enterprise Server 10.6.12-8

Overview

MariaDB Enterprise Server 10.6.12-8 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes. Users of MariaDB Enterprise Server 10.6.12-7 are encouraged to upgrade. Additional steps are required if upgrading from Enterprise Server 10.6.12-7 to 10.6.12-8.

The next scheduled maintenance release for MariaDB Enterprise Server is 2023-06-12.

MariaDB Enterprise Server 10.6.12-8 was released on 2023-05-24.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2022-47015

N/A (Medium)#1

#1:

MariaDB CVEs are assigned a word rating instead of a CVSS base score. See the MariaDB Engineering Policy for details.

Upgrade Procedure

MariaDB Enterprise Server 10.6.12-8 has a special upgrade procedure that only applies to users who previously deployed MariaDB Enterprise Server 10.6.12-7.

The following procedure is required to truncate the undo log tablespaces:

  1. Upgrade from ES 10.6.12-7 to 10.6.12-8 using the normal upgrade procedure.

  2. After the server has been started with ES 10.6.12-8, set innodb_fast_shutdown=0:

    SET GLOBAL innodb_fast_shutdown=0;
    
  3. Shutdown the server:

    $ sudo systemctl stop mariadb
    
  4. Change innodb_undo_tablespaces to a different value than its current value:

    [mariadb]
    innodb_undo_tablespaces=4
    
  5. Start the server:

    $ sudo systemctl start mariadb
    

Notable Changes

  • The optimizer can now use column histogram data when estimating output cardinality of hashed (BNL-H) joins. (MDEV-30812)

    • Starting with this release, the optimizer_switch system variable has a new flag called hash_join_cardinality that can enable the feature.

    • When enabled, the optimizer uses a formula that provides conservative estimates.

    • To enable this functionality in a given session, set the flag using the SET statement:

      SET optimizer_switch='hash_join_cardinality=on';
      

Issues Fixed

Can result in a hang or crash

  • When a prepared statement is used to query a view that contains a UNION, the server can crash. (MDEV-31102)

  • When binlog_row_image=FULL is set and slave_parallel_threads is greater than 0, replica servers can hang if data is inserted into tables with a sequence. (MDEV-29621)

    • In previous releases, the replica server would treat full inserts into the sequence as DDL statements, which would cause it to acquire an exclusive lock on the sequence table. If another parallel replication thread is waiting on the lock at the same time, the two threads can deadlock.

    • Starting with this release, replica servers manage their locks better to avoid deadlocks in this scenario.

  • When InnoDB splits or merges a B-tree page, the server can hang due to a race condition. (MDEV-29835)

  • When InnoDB undo log truncation is enabled by setting innodb_undo_log_truncate=ON, if some undo log tablespace exceeds innodb_max_undo_log_size, the server can hang. (MDEV-30863)

    • In previous releases, InnoDB chooses an undo log tablespace for truncation and marks all the related rollback segments with the state "truncation in progress". When the truncation is completed, InnoDB fails to re-enable the rollback segments. Consequently, if there are further write transactions before the server is shut down, the transactions must wait for usable rollback segments in a busy-loop. Since InnoDB does not re-enable the rollback segments, the transactions wait indefinitely.

    • Starting with this release, InnoDB properly manages the state of rollback segments when InnoDB undo log truncation is enabled.

Can result in unexpected behavior

  • For certain data distributions, the optimizer histogram code can produce wrong selectivity, which can lead to performance degradation. (MDEV-31067)

  • The optimizer does not take into account the selectivity of the equality conditions for Block Nested Hash (BNL-H) joins.

    • In previous releases, this issue can cause mis-estimates and bad query plans when running with join_cache_level set to 3 or higher (the default is 2).

  • When the lateral derived optimization is used to execute a query, the derived table is re-filled on every incoming row combination, even if the parameter values have not changed. (MDEV-26301)

  • When slave_parallel_mode is optimistic and slave_parallel_threads is greater than 0, ALTER SEQUENCE can fail with an out-of-order binlog error if the sequence uses InnoDB. (MDEV-31077)

    • In previous releases, the following error can be raised:

      Last_Error: Error 'An attempt was made to binlog GTID 0-1-100 which would create an out-of-order sequence number with existing GTID 0-1-100 and gtid stric mode is enabled' on query. Default database: 'test'. Query: 'alter sequence s1 restart with 1' will be shown.
      
  • InnoDB does not free undo logs when they are no longer needed. (MDEV-31234)

    • In the previous release, when innodb_undo_tablespaces is set to 0, the undo logs would be stored in the InnoDB system tablespace (ibdata1 by default), so this issue could cause the InnoDB system tablespace to grow indefinitely.

    • Starting with this release, InnoDB frees undo logs when they are no longer needed.

    • For servers that previously ran ES 10.6.12-7, a special procedure is required to truncate the undo log tablespaces after the upgrade is complete.

  • InnoDB history list length increases faster in MariaDB Enterprise Server 10.6 compared to MariaDB Enterprise Server 10.5 for the same load. (MDEV-29401)

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.02.3.

Interface Changes

  • hash_join_cardinality=off has been incrementally added to the default value of the optimizer_switch system variable.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.12-8 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

Windows packages are not currently available for this release.

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see "MariaDB Corporation Engineering Policies".