Release Notes for MariaDB Enterprise Server 10.5.12-8
This eighth release of MariaDB Enterprise Server 10.5 is a maintenance release. This release includes a variety of fixes.
MariaDB Enterprise Server 10.5.12-8 was released on 2021-09-14.
Fixed Security Vulnerabilities
CVE (with cve.org link) | CVSS base score |
---|---|
CVE-2021-2389 | 5.9 |
CVE-2021-46666 | 5.5 |
CVE-2021-46658 | 5.5 |
CVE-2021-46657 | 5.5 |
CVE-2021-2372 | 4.4 |
Backported Features
This release of MariaDB Enterprise Server includes features backported from MariaDB Enterprise Server 10.6.
- MariaDB Enterprise Audit allows database-specific and table-specific filters. (MENT-65)
For example:
{ "connect_event" : "ALL", "table_event" : ["READ","WRITE",{"ignore_tables" : "mysql.*"}], "query_event" : ["DDL",{"tables" : "test.t2"}] }
- MariaDB Enterprise Audit can be configured to not start the server if Audit Filters are invalid. (MENT-1243)
- Added the new server_audit_load_on_error system variable.
- To configure server startup to fail if Audit Filters are invalid, set server_audit_load_on_error to
OFF
and set server-audit toFORCE
orFORCE_PLUS_PERMANENT
. - The default value of server_audit_load_on_error is
ON
, so the default behavior is the same as in prior releases.
- Enhanced consistency for Semi-Sync Replication
- When rpl_semi_sync_slave_enabled=ON, consistency is guaranteed for a Primary server in an HA (Primary/Replica) topology when using semi-synchronous replication. (MDEV-21117)
- Prior to this release, when using semi-synchronous replication, if a Primary crashed before sending a transaction to the Replica, on restart the Primary could recover incomplete InnoDB transactions when rejoining as a Replica.
- With this release, when using semi-synchronous replication and with
rpl_semi_sync_slave_enabled=ON
, incomplete transactions will be rolled-back on the Replica, ensuring the new Primary (former Replica) and new Replica (former Primary) remain in sync.
- Enhanced compatibility with Sybase SQL Anywhere through sql_mode=EXTENDED_ALIASES: (MENT-1062)
With
sql_mode=EXTENDED_ALIASES
, alias resolution and use of column aliases in the SQL SELECT list andWHERE
clause. Withsql_mode=EXTENDED_ALIASES
, support use of an alias in the SELECT list before the alias is defined. Withsql_mode=EXTENDED_ALIASES
, if the same label is used for an alias and a column, the alias is used.
Notable Changes
Galera updated to 26.4.9
ARM64 is now supported for several #platforms.
- The script
wsrep_sst_mariabackup
checks all server-related configuration groups when processing a configuration file. (MDEV-25669)- Prior to this release, only the [
mysqld
] configuration group was checked when processing a configuration file.
- Prior to this release, only the [
- MariaDB Enterprise Backup expects --stream=mbstream to stream a backup using the included
mbstream
utility. (MDEV-15730)- Prior to this release, MariaDB Enterprise Backup expected --stream=xbstream, even though the
xbstream
utility had been renamed tombstream
.
- Prior to this release, MariaDB Enterprise Backup expected --stream=xbstream, even though the
InnoDB no longer acquires advisory file locks by default. (MDEV-24393)
The information_schema.KEYWORDS table has been added and can be used to view details about SQL keywords. (MDEV-25129)
The information_schema.SQL_FUNCTIONS table has been added and can be used to view details about built-in functions. (MDEV-25129)
- When using data-at-rest encryption with the file_key_management encryption plugin, InnoDB will automatically disable key rotation checks. (MDEV-14180)
- The file_key_management encryption plugin does not support key rotation, so key rotation checks are not required.
- In previous releases, unnecessary key rotation checks with the file_key_management encryption plugin could reduce performance, unless they were explicitly disabled by setting innodb_encryption_rotate_key_age=0.
Removed SSL ciphers RC4-MD5 and RC4-SHA for mariadbd binaries compiled with WolfSSL. (MDEV-26092)
- The
type_mysql_json
plugin is not supported, so it has been relocated to the appropriate location. (MENT-1277)- For binary tarballs, the plugin was moved to the
not_supported
directory. - For Linux packages, the plugin was moved to the
not-supported
repositories.
- For binary tarballs, the plugin was moved to the
- For mariadb-binlog, specifying the --base64-output option with no value would prevent the BINLOG statements from being written to the output. (MDEV-25222)
- Starting with this release, the --base64-output option requires a value, and the
always
value has been removed.
- Starting with this release, the --base64-output option requires a value, and the
The black box tool for MariaDB Enterprise Cluster has been renamed from bbtool
to mariadb-bbtool
. The install directory has been changed from sbin
to bin
. (MENT-1291)
Improved InnoDB page flushing performance. (MDEV-25954, MDEV-25948, MDEV-25801, MDEV-26004, MDEV-25113)
The inet6 plugin has been upgraded to the "stable"
maturity. (MDEV-26226)
The S3 plugin has been upgraded to the "stable"
maturity. (MDEV-26226)
Issues Fixed
Can result in data loss
- When an ALTER TABLE ... ADD COLUMN statement is executed with
ALGORITHM=INSTANT
, a warning is not raised when the operation causes the default value of a DATE column to be truncated. (MDEV-25971)
Can result in a hang or crash
- Possible server crash when pushing a
WHERE
condition over a mergeable derived table / view / CTE DT into a grouping view / derived table / CTE V whose item list contained set functions with constant arguments. (MDEV-25635)
- Server crashes on second execution of a stored procedure or a prepared statement when the corresponding query executes a window function on a view, CTE, or derived table. (MDEV-25565)
- Server crashes possible when executing a prepared statement with a hanging recursive CTE. (MDEV-26135)
- Server crashes while executing query with a CTE in a prepared statement or stored procedure. (MDEV-26025)
- Server crashes while executing query with a recursive CTE that is indirectly used twice. (MDEV-26202)
- Server crashes due to infinite recursion while processing an embedded recursive CTE with missing
RECURSIVE
. (MDEV-26095)
- Server crashes in InnoDB deadlock checker under high load. (MDEV-25594)
- Server crashes when a virtual generated column has a prefix index. (MDEV-26220)
- Server crashes possible when using virtual generated columns. (MDEV-18166, MDEV-18249)
- Server crashes while executing DELETE when a YEAR column is truncated. (MDEV-17890)
- Server crashes while executing SET ROLE when a hostname cannot be resolved. (MDEV-26081)
- Server crashes when a subquery references an outer column in an
ORDER BY
clause. (MDEV-25629)
- Server crashes due to a stack overrun in the query optimizer while executing query with more than 32 equality conditions that compare columns of different tables (such as
tableX.colX=tableY.colY
). (MDEV-17783)
- Server crashes when a window function is the left expression of an
IN(SELECT ..
) subquery. (MDEV-25630)
- Possible deadlock on a Replica server using GTID Replication when slave_parallel_mode=optimistic and OPTIMIZE TABLE, REPAIR TABLE, or ANALYZE TABLE is executed. (MDEV-17515)
- Server crashes when ALTER TABLE .. ADD FULLTEXT INDEX fails on an InnoDB table. (MDEV-25721)
- Server crashes while executing TRUNCATE on an InnoDB table with a Full-Text Index. (MDEV-25663)
- Server crashes while executing ALTER TABLE on an InnoDB table with virtual generated columns that are indexed. (MDEV-25872)
- Server crashes while executing CHECK TABLE when innodb_read_only is enabled. (MDEV-25886)
- Server crashes when a connection is killed while executing ALTER TABLE after previously locking the table with LOCK TABLE. (MDEV-17749)
- Server crashes when the global value of the system_versioning_asof system variable is set using a stored function that reads the value of another global system variable. (MDEV-16481)
- Server crashes when MariaDB Enterprise Audit is active and usernames longer than 256 characters are used. (MENT-1019)
- Server crashes when MariaDB Enterprise Audit is active and audit log file rotation is triggered. (MENT-1207)
- Server crashes while executing query with a CTE that is used at least twice and that references an embedded recursive CTE. (MDEV-26108)
- Possible crash with transactions having changes for tables with no primary key to apply in parallel, when using MariaDB Enterprise Cluster. (MDEV-25551)
- Server crashes when executing CREATE TABLE to create a Spider table with a
COMMENT
value that does not contain embedded double quotes. (MDEV-26139)
- Server crashes when a client connects during shutdown. (MDEV-18353)
- Server crashes while concurrently executing DROP TRIGGER. (MDEV-25651)
- Server hangs on Windows when mariadb-upgrade is executed and then the server is stopped. (MENT-1300)
- Server crashes while executing SET to set multiple variables at once. (MDEV-25601)
- Server crashes while calling SPIDER_DIRECT_SQL without creating the required temporary table. (MENT-1318)
- MariaDB Enterprise Backup crashes when executed with the --backup and --databases-exclude options. (MDEV-25815)
Can result in unexpected behavior
- When CREATE OR REPLACE TABLE fails after dropping the table, the
DROP TABLE
operation is not written into the binary log. (MDEV-25595)
- The SHOW GRANTS statement does not quote role names properly for
DEFAULT ROLE
. (MDEV-26080)
- The innochecksum utility reports errors for freed pages. (MDEV-25361)
- When an unknown column is referenced in the
WHERE
clause of a recursive CTE, the query sometimes succeeds instead of failing with an ER_BAD_FIELD_ERROR. (MDEV-26189)
- Reusing CTE inside a function fails with the ER_NO_SUCH_TABLE error code. (MDEV-23886)
- Several fixes for MariaDB Enterprise Cluster (Galera) SST scripts. (MDEV-20580, MDEV-25818, MDEV-25759, MDEV-25719, MDEV-15639, MDEV-15371, MDEV-18797, MENT-1170, MDEV-24979, MDEV-21192)
- With MariaDB Enterprise Cluster, when =mariabackup, MariaDB Enterprise Backup does not inherit server options set by the
Environment
systemd configuration parameter. (MDEV-24962)
- With MariaDB Enterprise Cluster, when =rsync is set and log-bin and/or log-bin-index are set to custom paths, the rsync SST does not copy the binary log index. (MDEV-25978)
As a result of this issue, a Joiner node writes the following error to the MariaDB Error Log:
tail: cannot open 'mysql-bin.index' for reading: No such file or directory
- With MariaDB Enterprise Cluster, when =rsync is set, rsync for a new SST process may be killed rather than the rsync for the old SST process. (MDEV-25880)
- With MariaDB Enterprise Cluster, the WSREP threads could write warnings about foreign keys to the MariaDB Error Log when wsrep_debug is not enabled. (MDEV-26062)
- In prior releases, the following warning could be written to the log:
InnoDB: WSREP: referenced FK check fail: Lock wait index `PRIMARY` table `schema`.`child_table`
- Starting with this release, the WSREP threads will only write warnings about foreign keys to the MariaDB Error Log when wsrep_debug is enabled.
- In prior releases, the following warning could be written to the log:
- The CREATE INDEX statement may check the wrong maximum column length. (MDEV-26203)
- The Spider storage engine handles ">=" as ">" in some cases, where multi-column indexes are used. (MDEV-25985)
- The max_password_errors system variable does not work correctly with the ed25519 authentication plugin. (MDEV-25641)
- The
"Condition pushdown into derived table"
optimization cannot be applied if the expression being pushed refers to a derived table column which is computed from an expression that has a stored function call, @session variable reference, or other similar construct. (MDEV-25969)
- A query that uses
ORDER BY .. LIMIT
clause and"Range checked for each record"
optimization could produce incorrect results. (MDEV-25858)
- An aborted OPTIMIZE TABLE statement is logged in the binary log and replicates to the Replica server. (MDEV-22530)
- For system-versioned tables, the SHOW INDEX statement displays the system-invisible row_end column as part of the primary key. (MDEV-16857)
- For system-versioned tables partitioned by
SYSTEM_TIME
, overflowing the partitions leads to incorrect results from SELECT. result (MDEV-22247)
- For Spider tables, SELECT statements that use
CASE WHEN .. THEN
can result in syntax error. (MDEV-24760)
- For Spider tables, SELECT statements that use the JSON_EXTRACT() function in the
WHERE
clause can result in a syntax error. (MDEV-24517)
- For Spider tables, UPDATE statements that call native functions using
remove_str
(such as TRIM()) fail with the ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT error code. (MDEV-24020)
- For Spider tables, server-sided prepared statements (created by PREPARE and executed by EXECUTE) incorrectly turn unsigned integer literals into signed integers. (MDEV-25808)
- For Spider tables, statements that use the JSON_REPLACE() function fail with the ER_SP_DOES_NOT_EXIST error code. (MDEV-24523)
- With MariaDB Enterprise Audit, the CREATE PROCEDURE and DROP PROCEDURE statements are not logged to the audit log. (MENT-1169)
- With MariaDB Enterprise Backup, the binary log position written to the
xtrabackup_binlog_info
file during the backup is incorrect for replication. (MDEV-23080)
- With MariaDB Enterprise Cluster, when =mariabackup, a typo in the SST script causes SST failure on the Donor node. (MDEV-26117)
- For Spider tables, SELECT statements that use
DISTINCT
do not work properly in some cases. (MDEV-26013)
- When mariadbd is compiled with WolfSSL, the server fails to accept connections using TLS 1.3 and AES-GCM cipher. (MDEV-22221)
- Concurrent CREATE TRIGGER statements can be written to the binary log in the wrong order and break replication. (MDEV-25606)
- When an INSERT .. RETURNING statement is executed in batch mode (such as when the connector sets the
COM_STMT_BULK_EXECUTE
option), the wrong values can be inserted. (MDEV-21916)
- For INSERT .. RETURNING statements, a qualified asterisk (such as
table_name.*
) is not supported in the RETURNING clause. (MDEV-23178)
- If a locking-read statement (
UPDATE or SELECT... FOR UPDATE
) contains an outer join with a constant inner table, warnings are written to the MariaDB Error Log. (MDEV-26106) Example warning:[ERROR] InnoDB: Unlock row could not find a 3 mode lock on the record.
Changes in Storage Engines
- This release incorporates MariaDB ColumnStore storage engine version 5.6.2.
Interface Changes
- ER_BLACKBOX_ERROR error code error number changed from
4174
to6000
- KEYWORDS information schema table added
mariadbd
--server-audit-load-on-error command-line option added
- server_audit_load_on_error system variable added
- SQL_FUNCTIONS information schema table added
- system_versioning_asof system variable default value changed from DEFAULT to "" (empty)
Platforms
In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.5.12-8 is provided for:
- CentOS 7 (x86_64)
- CentOS 8 (x86_64, ARM64)
- Debian 9 (x86_64, ARM64)
- Debian 10 (x86_64, ARM64)
- Red Hat Enterprise Linux 7 (x86_64)
- Red Hat Enterprise Linux 8 (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)
- Microsoft Windows (x86_64)
Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see MariaDB Corporation Engineering Policies".