Release Notes for MariaDB Enterprise Server 10.3.34-15

Overview

MariaDB Enterprise Server 10.3.34-15 is a maintenance release of MariaDB Enterprise Server 10.3. This release includes a variety of fixes.

MariaDB Enterprise Server 10.3.34-15 was released on 2022-03-14.

Fixed Security Vulnerabilities

CVE (with cve.mitre.org link)

CVSS base score

CVE-2021-46668

5.5

CVE-2021-46665

5.5

CVE-2021-46664

5.5

CVE-2021-46663

5.5

CVE-2021-46661

5.5

CVE-2021-46659

5.5

Notable Changes

Issues Fixed

Can result in data loss

  • Columns in some INFORMATION_SCHEMA tables are erroneously declared with DEFAULT clauses, which is not compliant with the SQL standard. (MDEV-18918)

    • Consequently, when sql_mode=EMPTY_STRING_IS_NULL is set, queries like CREATE TABLE .. SELECT .. FROM INFORMATION_SCHEMA... could encounter replication errors like the following:

    Error 'Invalid default value for 'TABLE_NAME'' on query. Default database: 'test'. Query: 'CREATE TABLE `t1` (`TABLE_NAME` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT ''
    
  • When an ALTER TABLE statement changes the order of indexes in a MyISAM or Aria table using the INPLACE algorithm, the table can become corrupt. (MDEV-25803)

  • When CREATE OR REPLACE SEQUENCE is written to the binary log, the statement is not flagged as DDL, which causes the replica servers to execute the statement in an unsafe way if parallel replication is enabled. (MDEV-27365)

Can result in a hang or crash

  • When a FULLTEXT index is added to an InnoDB table with ALGORITHM=INPLACE and the indexed column uses the tis620 character set, the server can crash with a segmentation fault (signal 11). (MDEV-24901)

  • When MariaDB Server is used on the ARM architecture, which uses a weak memory model, an internal hash table implementation can cause the server to crash with a segmentation fault (signal 11). (MDEV-27088)

  • When wsrep_sst_method=mariabackup and innodb_force_recovery=1 are set with MariaDB Enterprise Cluster, powered by Galera, the joiner node fails to perform an SST. (MDEV-26064)

    • The SST log contains the following message related to the failure:

    mariabackup: The option "innodb_force_recovery" should only be used with "--prepare".
    mariabackup: innodb_init_param(): Error occurred.
    
  • When --stream=xbstream is set, MariaDB Enterprise Backup can hang on lock acquisitions due to a deadlock. (MDEV-26558)

  • When a stored procedure is defined with a query that contains a set function, and the set function's only argument is an outer reference to a column of a mergeable view, a derived table, or a CTE, the second execution of the stored procedure can cause the server to crash. (MDEV-25086)

  • When a derived table is created for certain queries that use subqueries over Views or CTEs, the server can crash with a segmentation fault (signal 11). (MDEV-25631)

  • When a stored procedure uses a cursor to run a query that requires an internal temporary table (such as queries containing an ORDER BY clause), the server can crash due to a segmentation fault (signal 11). (MDEV-24827)

  • Server can crash if a CTE or derived table is not used by the query. (MDEV-25766)

  • When log_slow_verbosity = 'explain' is set and a query is executed that references a derived table, the server can crash while writing the query's execution plan to the slow query log. (MDEV-26249)

  • When a stored procedure or a prepared statement is used to execute a query that performs a join which compares a GEOMETRY column with a different data type, executing the stored procedure or prepared statement twice can cause the server to crash. (MDEV-20770)

Can result in unexpected behavior

  • When a multi-byte character set is used, the last character of a TINYTEXT column can be truncated, which makes it appear as a question mark ('?). (MDEV-24335)

  • Subquery using the ALL keyword on TIME columns produces a wrong result. (MDEV-27098)

  • Subquery using the ALL keyword on DATE columns produces a wrong result. (MDEV-27072)

  • When float literals are defined using scientific notation and the token also contains certain special characters, the parser incorrectly parses the float value and completely drops it from the request. (MDEV-27066)

  • When a double-encapsulated CTE query calls a function which reads a table that has been aliased in the CTE query, the server incorrectly raises an error with the ER_NO_SUCH_TABLE error code. (MDEV-26825)

  • When a CTE is used in a subquery of a DELETE statement, the server incorrectly raises an error with the ER_NO_DB_ERROR error code. (MDEV-26470)

  • When MariaDB Enterprise Cluster performs an SST, the SST scripts incorrectly try to read ssl_ca as a path to a directory of TLS CA certificates instead of using ssl_capath for that purpose. (MDEV-27181)

  • When MariaDB Enterprise Cluster performs an SST, the SST scripts do not always interpret log_bin_index correctly. (MDEV-26915)

  • When an index is used for an ORDER BY .. LIMIT query, the optimizer does not disable the Range Checked for Each Record optimization. (MDEV-27270)

  • When optimizer_switch='index_merge_sort_intersection=on' is set, the optimizer can incorrectly choose to merge an index that does not help, because the query conditions require the full index to be scanned. (MDEV-27262)

  • When the version system variable is set, MariaDB Connector/C and the mariadb client do not interpret MariaDB Server's extended metadata properly, which can cause results from some SHOW .. to be right-aligned. (MDEV-27304)

  • When an INSERT .. SELECT statement selects from and inserts into the same table, rows are counted twice, which can cause row numbers to be reported incorrectly in error messages. (MDEV-26698)

  • When a replica server's relay log is rotated, Seconds_Behind_Master in SHOW SLAVE STATUS can temporarily show an incorrect value that is very high. (MDEV-16091)

  • The collation column in the information_schema.STATISTICS table is incorrectly read as NULL. (MDEV-4621)

  • When a join performs a comparison between an expression that uses a case-insensitive collation and an ENUM column that uses a binary collation, the comparison uses the wrong collation, which can cause results to be incorrect. (MDEV-26129)

  • When innodb_buffer_pool_size is changed dynamically with SET GLOBAL, InnoDB does not enforce the minimum value that is enforced on startup, which can result in an impossibly small buffer pool with some values of innodb_buffer_pool_chunk_size. (MDEV-27467)

  • When the DATABASE() function is used in some queries (such as queries using UNION ALL), database names can be truncated to 34 characters, even though database names can have up to 64 characters. (MDEV-27544)

  • When the --symbolic-links option is disabled, such as when --skip-symbolic-links or --disable-symbolic-links is set, InnoDB still allows symbolic links and .isl files to be created if tables have the DATA DIRECTORY option. (MDEV-26870)

  • When CREATE TABLE t1 LIKE t2 is executed and the t2 table is a partitioned table that uses the MyISAM or Aria storage engines and has the DATA DIRECTORY option defined for partitions, the operation fails with a file system error. (MDEV-25917)

  • When sql_mode=ONLY_FULL_GROUP_BY is set, some window functions incorrectly raise an error with the ER_MIX_OF_GROUP_FUNC_AND_FIELDS error code. (MDEV-17785)

  • When a CTE is used with a UNION in a CREATE TABLE .. AS .. statement, the server incorrectly raises an error with the ER_NO_DB_ERROR error code. (MDEV-27086)

  • When the JSON_COMPACT function is called with values from a subquery, the output is not always returned as the JSON data type. (MDEV-18284)

  • When a system-versioned table is partitioned by SYSTEM_TIME` with a ``LIMIT clause, CHECK TABLE can incorrectly return an error. (MDEV-25552)

  • The lateral derived optimization is not disabled for queries that use WITH ROLLUP, which causes queries that use GROUP BY to return incorrect results. (MDEV-26337)

  • When optimizer_switch='split_materialized=on' is set, queries that use the split optimization can return the wrong results. (MDEV-27510) (MDEV-27132)

  • When a row is deleted from an InnoDB table, and then a new row with the same key is inserted into the table by a different transaction, InnoDB's MVCC code can incorrectly hide the new row from transactions that should see the changes: (MENT-1414)

    • Consequently, queries can try to insert another new row with the same key, which results in an error with the ER_DUP_ENTRY error code.

    • When a replica server has slave_parallel_mode set to 'optimistic' or 'aggressive', this can result in the following error in SHOW REPLICA STATUS:

    Last_Errno: 1062
    Last_Error: Error 'Duplicate entry 'VALUE' for key 'KEY_NAME'' on query. Default database: 'DATABASE_NAME'. Query: 'INSERT INTO ..'
    

Interface Changes

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.3.34-15 is provided for:

  • CentOS 7 (x86_64)

  • Debian 9 (x86_64 / ARM64)

  • Debian 10 (x86_64 / ARM64)

  • Microsoft Windows (x86_64)

  • 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)

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