All pages
Powered by GitBook
1 of 1

Loading...

Release Notes for MariaDB Enterprise Server 10.5.21-15

MariaDB Enterprise Server 10.5.21-15 is a Stable (GA) maintenance release of MariaDB Enterprise Server 10.5, released on 2023-06-13

MariaDB Enterprise Server 10.5.21-15 is a maintenance release of MariaDB Enterprise Server 10.5. This release includes a variety of fixes.

MariaDB Enterprise Server 10.5.21-15 was released on 2023-06-13.

Fixed Security Vulnerabilities

CVE (with cve.org link)
CVSS base score

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

Notable Changes

  • For compatibility, has been added as an alias to JSON_DETAILED(). ()

  • InnoDB's internal performance has been improved. ()

  • The is added as read-only. ()

  • The default value for the has been changed from None to OFF. ()

  • Starting with this release, the must be configured in a configuration file prior to starting up the server:

  • The is added as read-only. ()

    • The --aria-log-dir-path command-line option is added to mariadb-backup.

  • By default, no longer prints messages about log scanning. ()

  • Starting with this release, the messages about log scanning are only printed when is enabled.

Issues Fixed

Can result in data loss

  • When a backup is created with and is configured, the Aria logs are not copied to the backup. ()

  • When system versioning is enabled for a table without a primary key, changes to the table are not properly replicated. ()

  • When a partitioned table contains a prefix index on a column that uses a NOPAD collation, queries with ORDER BY can return rows in the wrong order. ()

  • When a index includes a PERIOD in its definition, a duplicate key error can be incorrectly raised when the table uses the . ()

Can result in a hang or crash

  • When an UPDATE or DELETE is rolled back from an InnoDB table with ROW_FORMAT=COMPRESSED, the server can crash. ()

  • When the function is called on a string that has no character set defined, the server can crash. ()

  • With Galera, when is set and encrypt=4 is enabled for State Snapshot Transfers (SSTs), SSTs can fail if the version of socat installed on the donor node is 1.7.4.0 or later. ()

  • Starting with this release, when the SST script starts the socat listener on the donor node, the error is prevented by setting no-sni=1 if the version of socat installed is 1.7.4.0 or later.

  • When optimizer trace is enabled, if a view is part of a multi-table update, the server can crash. ()

  • When a view definition contains a UNION and the view is queried using server-side prepared statements, if the optimizer pushes down a condition into the execution of the view, the server can crash during character set conversions. (

  • With Galera, when streaming replicating is enabled by setting the , the server can crash when certain fragment sizes are specified. ()

  • When EXPLAIN EXTENDED is executed for a single-table DELETE that contains an IN(..) predicand, the server can crash. ()

  • When parallel replication is enabled by setting greater than 0, the replica's parallel replication worker threads could hang after hitting an error. ()

  • In this scenario, this issue causes one of the parallel replication worker threads to hang in the closing tables state, so the output of SHOW PROCESSLIST would show one worker thread in that state indefinitely:

  • When the optimizer chooses how to split a semi-join, the server can crash. ()

  • With Galera, when CREATE TEMPORARY SEQUENCE is executed on a cluster node and binary logging is enabled, the server crashes. ()

  • With Galera, when a write set fails certification and binary logging is enabled, the WSREP sequence numbers (cluster-wide transaction IDs) used by a WSREP applier thread can become out of sync with the node's XIDs (internal transaction IDs) due to a race condition, which can cause the node to crash. ()

  • Starting with this release, the server prohibits CREATE TABLE .. SELECT in this scenario and raises the with the following error message:

  • With Galera, when a connection uses the handler interface to start a transaction on a table, the server can crash when the client disconnects. () In previous releases, when the client disconnected, the server would rollback the transaction and release all locks, including the locks that the handler interface expected to survive after the transaction ended, which would cause the server to crash.

    • In previous releases, the following assertion is written to the MariaDB error log during the crash:

  • With Galera, when an SST donor changes to the non-primary state, the SST is not terminated properly, and the donor node crashes. (MENT-1708)

    • In previous releases, the following error message and assertion is written to the MariaDB error log during the crash:

  • When a query is executed that uses DISTINCT and an aggregate function on a group, the server can crash. ()

  • When a server-side prepared statement is used to execute a query that references views and contains a HAVING clause, the server can crash upon second execution of the query. ()

  • When the InnoDB purge thread tries to use the change buffer for an uncommitted index, the server aborts with an assertion. ()

  • Starting with this release, when Galera is enabled, mixed transactions are rejected in with the following error message:

  • When InnoDB uses a lot of memory during crash recovery, the server can hang due to a race condition between the thread flushing the buffer pool and the thread performing the recovery. ()

  • With Galera, when streaming replicating is enabled by setting the , the server can crash when backup locks or user-level locks are released. ()

  • With Galera, when one session is terminated using the and another session's transaction is aborted by the WSREP applier threads due to a conflict, the two operations use a conflicting mutex locking order, which can cause the node to hang. ()

Can result in unexpected behavior

  • When EXPLAIN EXTENDED is executed for a multi-table UPDATE that uses the system join type, the output can be incorrect. ()

  • When a query specifies DISTINCT and contains expressions using the SUM() function, the wrong results are returned. ()

  • When a view's definition contains a HAVING clause, selecting from the view can fail with an error. (

  • When a view's definition contains an aggregate function, selecting from the view can fail with an error. ()

    • In previous releases, queries could raise an error with the and the following error message:

  • When a view's definition contains a table-value constructor (TVC) as a single-value subquery, selecting from the view can fail with an error. ()

    • In previous releases, queries could raise an error with the and the following error message:

  • When a view's definition contains an aggregate function in an uncorrelated subquery, the wrong result is returned. ()

  • When a DELETE statement contains a subquery with a HAVING clause or an aggregate function in the WHERE clause, the statement can fail with an error. ()

    • In previous releases, queries could raise an error with the ER_INVALID_GROUP_FUNC_USE

  • When an InnoDB tablespace has been discarded, selecting from fails with an error. ()

    • In previous releases, an error with the is raised:

  • Starting with this release, no error is returned, and the results contain NULL for the PAGE_NO and SPACE columns for discarded tablespaces.

  • When is set to a relative path, the path is not properly used by . ()

    • In previous releases, the undo logs would be copied to the relative path compared to the current working directory.

  • When an UPDATE contains a WHERE clause that contains a range condition over a non-indexed VARCHAR column, an error is raised. ()

    • In previous releases, an error with the is raised with the following error message:

  • When slave_parallel_threads is greater than 0 and SHOW SLAVE STATUS is executed, the connection can try to acquire an uninitialized mutex. ()

    • In previous releases, a race condition could cause the mutexes of parallel replication worker threads to be acquired before they are initialized.

  • The ucs2_general_mysql500_ci

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 5.6.8-2.

Interface Changes

  • system variable added.

  • system variable default value changed from None to OFF

  • system variable dynamic changed from Yes to No

  • For compatibility, has been added as an alias to JSON_DETAILED().

Platforms

In alignment with the , MariaDB Enterprise Server 10.5.21-15 is provided for:

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

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

Installation Instructions

Upgrade Instructions

Starting with this release, the innodb_buffer_pool_filename system variable is read-only and can't be changed dynamically. (MDEV-30453)

  • In previous releases, when innodb_buffer_pool_dump_at_shutdown was enabled, users with the SUPER privilege were able to dynamically change the value of the innodb_buffer_pool_filename system variable:

In previous releases, messages like the following could be printed excessively:

For some collations, when a unique constraint is defined with UNIQUE(..) USING HASH, duplicate values are accepted. (MDEV-30034)

  • When an InnoDB table with ROW_FORMAT=REDUNDANT is being rebuilt due to a DDL statement, the server can crash while trying to apply cached DML operations to the rebuilt table. (MDEV-26198)

  • Long uniques don't work correctly with Unicode collations. Equal strings (in terms of the collation) are compared as unequal if the length of the strings are different. (MDEV-27653, MDEV-28190)

  • When innodb_buffer_pool_filename is set to the empty string, the server tries to delete the during shutdown. (MDEV-30453)

    • Starting with this release, the innodb_buffer_pool_filename system variable is read-only and can't be changed dynamically.

  • When is optimistic and is greater than 0, 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:

  • In previous releases, SSTs could fail with the following error in the donor node's MariaDB error log if the version of socat installed is 1.7.4.0 or later:

  • )
  • When a replica server connects to a primary server with MASTER_USE_GTID=slave_pos, if the primary server has encrypted binary logs that it can no longer decrypt, the primary server crashes due to a segmentation fault. (MDEV-28798)

    • In previous releases, the primary node would iterate over all of its binary logs to look for the requested GTID. When one of the binary logs could not be decrypted, the server would crash.

    • Starting with this release, when the primary node fails to decrypt a binary log in this scenario, it stops iterating over the binary logs and raises an error with the ER_MASTER_FATAL_ERROR_READING_BINLOG error code with the following error message:

  • In previous releases, when the server was hung in this scenario, the output of SHOW SLAVE STATUS would show that an error occurred, but the output would indicate that both the I/O and SQL threads were running.

  • In previous releases, when a write set failed certification and binary logging was enabled, a WSREP applier thread could sync the WSREP sequence number out-of-order, because the commit order could be released too early.

  • With Galera, when streaming replicating is enabled by setting the and CREATE TABLE .. SELECT is executed, the server can crash. The following assertion is written to the MariaDB error log during the crash: (MDEV-30862)

  • When the rowid_filtering optimization is used with a partitioned table, the server aborts with an assertion. (MDEV-30596)

  • With Galera, a hang can occur in "starting" commit state due a deadlock between a KILL command and an abort issued by an applier. (MENT-1855)

    • Starting with this release, Total Order Isolation (TOI) is not used for the KILL command.

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

  • When a backup is prepared with mariadb-backup, the utility can hang due to a race condition between the thread flushing the buffer pool and the thread deleting the redo log file. (MDEV-30860)

  • With Galera, when a transaction changes multiple tables that use different storage engines, some of which support the server's internal 2-phase commit protocol and some of which don't support it, the node crashes with an assertion failure. (MDEV-30804)

    • In previous releases, the following assertion failure is written to the MariaDB error log during the crash in this scenario:

  • With Galera, when many sessions are aborted by a WSREP applier thread due to conflicts, the sessions can hang due to a deadlock. (MENT-1693)
    • In previous releases, the output of could show sessions hang in the acquiring total order isolation state with queries like KILL QUERY n:

    )
    • In previous releases, queries could raise an error with the ER_VIEW_INVALID error code and the following error message:

    error code and the following error message:

    Starting with this release, the undo logs are copied to the relative path compared to the .

  • When UNIX_TIMESTAMP(CURRENT_TIME()) is executed, the incorrect value is returned. (MDEV-26765)

    • In previous releases, NULL is returned.

  • With Galera, when is set, systemd raises an error about a mismatched PID. (MDEV-25887)

    • In previous releases, systemd could raise the following error, where BACKUP_PID is the PID of MariaDB Enterprise Backup and SERVER_PID is the PID of MariaDB Enterprise Server:

  • collation, which is intended for compatibility with older versions of MySQL, incorrectly sorts 'ß' after 's'. (
    )
  • When EXPLAIN EXTENDED is executed with an INSERT, UPDATE, DELETE, or REPLACE, a warning containing the query text is not printed. (MDEV-30539)

  • The rowid_filtering optimization is applied incorrectly in some cases. (MDEV-30218)

  • When preparing a partial backup, MariaDB Enterprise Backup raises error messages about missing InnoDB tablespace files that are expected to be missing, because they were excluded from the backup. (MDEV-29050)

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

  • When InnoDB writes data from the doublewrite buffer to the redo log file, the is not properly incremented. (MDEV-31124)

  • Parallel replication breaks if XA PREPARE fails updating replica GTID State (MDEV-31038)

  • When InnoDB has opened more data files than innodb_open_files, opening additional data files takes longer than expected due to a performance regression. (MDEV-30775)

  • When the is called with a key value that includes a double quote, the double quote character is not escaped. (MDEV-30412)

  • With optimizer_switch='not_null_range_scan=on', when a LEFT JOIN is executed on an empty table, the results can be incorrect. (MDEV-30333)

  • When a query contains a GROUP BY clause and the query calls an aggregate function on a table's primary key, the results can be incorrect if the GROUP BY clause is evaluated using an index. (MDEV-30605)

  • With Galera, when a cluster node has the query cache enabled and the node has regular MariaDB replication configured, query cache entries are not properly invalidated when tables are changed due to replication. (MDEV-28641)

  • When a backup is created with mariadb-backup, the utility opens the aria_log_control file in read/write mode instead of in read-only mode. (MENT-1794)

  • mariadb-backup --aria-log-dir-path command-line option added.

    Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)
  • 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 20.04 (x86_64, ARM64)

  • Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.5

  • Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.5

  • CVE-2022-47015

    N/A (Medium)#1

    MDEV-19160
    MDEV-30567
    aria_log_dir_path system variable
    MDEV-30971
    MDEV-11356
    innodb_buffer_pool_filename system variable
    aria_log_dir_path system variable
    MDEV-26153
    mariadb-backup
    MDEV-25765
    --verbose
    mariadb-backup
    aria_log_dir_path
    MDEV-30968
    MDEV-30430
    MDEV-30072
    UNIQUE
    MDEV-30415
    MDEV-30882
    MDEV-30351
    MDEV-30402
    MDEV-31085
    MDEV-30838
    MDEV-31181
    MDEV-30780
    MDEV-31403
    MDEV-25045
    MDEV-27317
    ER_NOT_ALLOWED_COMMAND error code
    MDEV-30955
    MDEV-31113
    MDEV-31189
    MDEV-30076
    MDEV-30551
    MDEV-25037
    MDEV-28460
    MDEV-31224
    MDEV-20057
    MDEV-28571
    ER_INVALID_GROUP_FUNC_USE error code
    MDEV-28603
    ER_VIEW_INVALID error code
    MDEV-29224
    MDEV-30586
    MDEV-30615
    ER_UNKNOWN_ERROR error code
    innodb_undo_directory
    mariadb-backup --copy-back
    MDEV-28187
    MDEV-20773
    ER_DATA_TOO_LONG error code
    MDEV-30620
    aria_log_dir_path
    innodb_buffer_pool_filename
    enterprise lifecycle
    MariaDB Corporation Engineering Policies
    MariaDB Enterprise Server
    10
    .5
    10
    MDEV-31102
    MDEV-28570
    MDEV-30746
    SET GLOBAL innodb_buffer_pool_filename='SOME_FILE_PATH';
    [mariadb]
    innodb_buffer_pool_filename=SOME_FILE_PATH
    log scanned up to (LSN)
    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.
    E Failed to set SNI host ""
    Got fatal error 1236 from master when reading data from binary log: 'Could not set up decryption for binlog.'
    SHOW SLAVE STATUS\G
    *************************** 1. row ***************************
                    Slave_IO_State: Waiting for master to send event
    ..
                  Slave_IO_Running: Yes
                 Slave_SQL_Running: Yes
    ..
                        Last_Errno: 1062
                        Last_Error: Could not execute Write_rows_v1 event on table TABLE_NAME; Duplicate entry 'VALUE' for key 'KEY_NAME', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log LOG_FILE, end_log_pos END_LOG_POS
    ..
    SHOW PROCESSLIST;
    +------+--------------+--------------------+------+--------------+-------+-----------------------------------------------+------------------+----------+
    | Id   | User         | Host               | db   | Command      | Time  | State                                         | Info             | Progress |
    +------+--------------+--------------------+------+--------------+-------+-----------------------------------------------+------------------+----------+
    ..
    | 2394 | system user  |                    | NULL | Slave_worker | 50852 | closing tables                                | NULL             |    0.000 |
    ..
    +------+--------------+--------------------+------+--------------+-------+-----------------------------------------------+------------------+----------+
    Assertion `mode_ == m_high_priority' failed in void wsrep::client_state::after_applying()
    ERROR 42000: CREATE TABLE AS SELECT is not supported with streaming replication
    void close_thread_table(THD*, TABLE**): Assertion `thd->mdl_context.is_lock_owner(MDL_key::TABLE, table->s->db.str, table->s->table_name.str, MDL_SHARED)' failed.
    [Warning] WSREP: server: NODE_NAME unallowed state transition: connected -> joined
    void wsrep::server_state::state(wsrep::unique_lock<wsrep::mutex>&, wsrep::server_state::state): Assertion `0' failed.
    int wsrep::transaction::ordered_commit(): Assertion `state() == s_committing' failed.
    ERROR HY000: Transactional commit not supported by involved engine(s)
    12345678	myuser	127.0.0.1:45071	mydb	Query	1058	acquiring total order isolation	KILL QUERY 20254887	0.000
    View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
    ERROR 1111 (HY000): Invalid use of group function
    View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
    ERROR 1111 (HY000): Invalid use of group function
    ERROR 1105 (HY000): Unknown error
    Got notification message from PID BACKUP_PID, but reception only permitted for main PID SERVER_PID
    ERROR 1406 (22001): Data too long for column 'COLUMN_NAME' at row 1
    wsrep_sst_method=mariadb-backup
    wsrep_trx_fragment_size system variable
    wsrep_trx_fragment_size system variable
    wsrep_trx_fragment_size system variable
    wsrep_sst_method='mariadb-backup'
    JSON_PRETTY()
    core_file system variable
    utf8mb4_unicode_nopad_ci collation
    LEFT()
    slave_parallel_threads
    KILL statement
    information_schema.INNODB_SYS_INDEXES
    core_file
    JSON_PRETTY()
    Enterprise Cluster Topology with MariaDB Enterprise Server
    .5
    Primary/Replica Topology with MariaDB Enterprise Server 10.5
    ColumnStore Object Storage Topology with MariaDB Enterprise Server 10.5
    and MariaDB Enterprise ColumnStore 23.02
    Upgrade to MariaDB Enterprise Server 10.5
    Upgrade from MariaDB Community Server to MariaDB Enterprise Server 10.5
    datadir
    slave_parallel_mode
    slave_parallel_threads
    ALTER SEQUENCE
    binlog_row_image=FULL
    slave_parallel_threads
    SHOW PROCESSLIST
    datadir
    Innodb_data_written status variable
    JSON_OBJECTAGG function
    ColumnStore Shared Local Storage Topology with MariaDB Enterprise Server 10.5
    and MariaDB Enterprise ColumnStore 23.02
    HTAP Topology with MariaDB Enterprise Server 10.5
    and MariaDB Enterprise ColumnStore 23.02
    Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.5
    and Object Storage
    Single-Node Enterprise ColumnStore 23.02 with MariaDB Enterprise Server 10.5

    This page is: Copyright © 2025 MariaDB. All rights reserved.