Release Notes for MariaDB Enterprise Server 10.6.16-11

Overview

MariaDB Enterprise Server 10.6.16-11 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.

MariaDB Enterprise Server 10.6.16-11 was released on 2023-12-12.

Fixed Security Vulnerabilities

CVE (with cve.org link)

CVSS base score

CVE-2023-22084

4.9

Changes in Storage Engines

  • This release incorporates MariaDB ColumnStore engine version 23.10.0.

Backports

  • A new view sys.privileges_by_table_by_level in the sys schema, to show privileges granted to a table on a global, schema, or table level. (MENT-2007)

  • Option s3_debug can now be changed without the need to restart the server (MENT-2001)

  • New Time Zone Options %Z and %z for DATE_FORMAT (MENT-1902)

  • Server Audit Log with Milliseconds Precision Timestamps (MENT-1744)

Notable Changes

  • Beginning with this release MariaDB Enterprise Server does not use Transparent Huge Pages (THP) anymore (MENT-2015)

    • Many new platforms have enabled THP by default for new release series. THP interferes with how memory is allocated and freed. THP does not work well with databases or other services that has a long uptime and constantly allocates and frees memory. THP causes excessive usage of memory which can lead to out-of-memory (OOM) crashes.

    To check if the OS has enabled THP use

    cat /sys/kernel/mm/transparent_hugepage/enabled
    [always] madvise never
    

    '[always]' means that THP is enabled.

  • Raise notes if indexes cannot be used (MDEV-32203)

    • In case of data type or collation mismatch (different error messages).

    • In case if a table field was replaced with something else (e.g., Item_func_conv_charset) during a condition rewrite.

    • Added options to write warnings and notes to the slow query log for slow queries. New variables added/changed:

      • note_verbosity, which is a set of the options:

        • basic - All old notes

        • unusable_keys - Print warnings about keys that cannot be used for select, delete, or update.

        • explain - Print unusable_keys warnings for EXPLAIN queries.

        • The default is 'basic,explain'.

        • For old installations the notable new behavior is that one will get notes about unusable keys when one does an EXPLAIN for a query.

        • Set either note_verbosity to an empty string or setting sql_notes=0 do disable notes.

      • log_slow_verbosity has a new option 'warnings'. If this is set then warnings and notes generated are printed in the slow query log up to log_slow_max_warnings times per statement.

      • log_slow_max_warnings - Max number of warnings written to slow query log.

    • One can now use =ALL for any 'set' variable to set all options at once. (MDEV-32203)

[mariadb]
note_verbosity=ALL
SET @@note_verbosity=ALL
  • CHACHA20-POLY1305 support when WolfSSL is used (MDEV-31653)

  • The semi-synchronous replication magic number error "[ERROR] Read semi-sync reply magic number error" has been improved to show the semi-sync acknowledgment reported with printing the hex dump of the failing network packet (MDEV-32365)

  • Disable TLS v1.0 and 1.1 for MariaDB. TLSv1.1 removed from the default tls_version system variable. (MDEV-31369)

    • A warning is shown if TLSv1.0 or TLSv1.1 are selected.

Issues Fixed

Can result in data loss

  • With binary log enabled transactions that are filtered out of binlogging by any of binlog_{do,ignore}_db option may be lost in the engine. (MDEV-29989)

  • Assertion failures in log_sort_flush_list upon crash recovery. It is possible that if the server is killed and restarted right after recovery, the second recovery could fail. (MDEV-32029)

  • Race condition between page write completion and log checkpoint on crash recovery. This may break crash recovery in case of an operating system crash or abrupt loss of power or storage connectivity. (MDEV-32511)

  • Assertion fails in MDL_context::acquire_lock upon parallel replication of CREATE SEQUENCE (MDEV-31792)

Can result in hang or crash

  • A hang or crash could be observed in parallel replication of STATEMENT binlog format transactions modifying temporary tables e.g., witnessed in rpl.rpl_parallel_temptable failure. (MDEV-10356)

  • A failure that occurs due to unnecessary replication of CACHE INDEX and LOAD INDEX INTO CACHE although this is a local operation. (MDEV-24912)

  • Rowid filter does not process a storage engine error correctly. A query that's executing a locking read and is using the Rowid Filter could cause a server crash if it has encountered a Lock Wait Timeout or Deadlock or a similar error when building the Rowid Filter. (MDEV-25163)

  • Possible server crash when executing OPTIMIZE TABLE. InnoDB fails to check the overflow buffer while applying the operation to the table that was rebuilt (MDEV-28122)

  • Crash when HAVING in a correlated subquery references columns in the outer query (MDEV-29731)

  • Due to a flaw in the SST scripts, it was not possible to execute SST when datadir, or some innodb log directory points to a path that is actually a symlink to the actual data directory. (MDEV-29893)

  • A cluster node crashes, which sometimes occurs in situations where brute force (BF) thread conflicting requested lock, and was trying to kill the victim transaction, but this victim transaction was also handled by brute force thread. (MDEV-30217)

  • Possible race condition between InnoDB purge and rollback of alter operation. Alter rollback marks the index as corrupted while the purge is working on the same index (MDEV-30802)

  • Server can crash when a table of type SPIDER starts with a comment string which is not a parameter for SPIDER. (MDEV-31117)

  • Node crashes when trying to execute "CREATE TABLE ... WITH SYSTEM VERSIONING AS SELECT ..." (MDEV-31285)

  • Lock wait timeout with INSERT-SELECT, autoinc, and statement-based replication (MDEV-31482)

  • Too strict assertion which leads to a problem since with the BINLOG statement we can execute binlog events on master also (not only in applier). (MDEV-31651)

  • Galera cannot support wsrep_forced_binlog_format=[MIXED|STATEMENT] during CREATE TABLE AS SELECT. But a crash in the form of an assertion is an overreaction. Now a warning is issued instead. (MDEV-31660)

  • The MariaDB Enterprise Cluster node does not return from donor/desynced state to synced state with wsrep_mode=BF_ABORT_MARIABACKUP (MDEV-31737)

  • When a MariaDB Enterprise Cluster node is a replica of another MariaDB Enterprise Cluster and optimistic replication is used, a node can hang. To support optimistic parallel replication the replication slave abort needs to be skipped if a node remains in the cluster (wsrep_ready==ON) and replication is configured for optimistic or aggressive retry logic. (MDEV-31833)

  • After crash recovery, the server crashes with error "InnoDB: Checksum mismatch in the first page of file" in the server log (MDEV-31851)

  • Possible server crash when setting SPIDER option spider_delete_all_rows to 0 and delete all rows of a spider table (MDEV-31996)

  • InnoDB may hang with a low probability under any write workload. (MDEV-32049)

  • InnoDB may hang when using a small innodb_buffer_pool_size (MDEV-32134)

  • Use of nested row constructs in the left expression of an IN subquery should produce an error. Example: (a,(b,c)) IN (SELECT ...). In some degenerate cases, the error was not detected, and this causes a crash at a further stage in query processing. (MDEV-32320)

  • A table-less subquery with a LIMIT clause with non-zero offset, like ( SELECT two LIMIT 1 OFFSET 1) can produce unexpected results. If used inside ORDER BY, it can cause a crash. (MDEV-32324)

  • InnoDB may hang when running out of buffer pool (MDEV-32588)

  • Possible crash in the full-text search plugin parser when using FULLTEXT...WITH PARSER. (MDEV-32578)

  • Intermittent crashes when using SEQUENCE in combination with Galera (MDEV-32024)

  • When two clients execute FLUSH TABLES WITH READ LOCK/UNLOCK TABLES on a Galera node, the node would sometimes get stuck in a paused state. This can cause the next requests to fail. (MDEV-32282)

  • Sometimes a node has been dropped from the cluster on startup/shutdown with async replication enabled due to inconsistency issues with the mysql.gtid_slave_pos table (between master and replica nodes), because previously this table was not previously replicated within the cluster. (MDEV-31413)

  • Server crashes in JOIN::cleanup after erroneous query with view (MDEV-32164)

  • Possible server crashes in some create table-like scenarios where some generated indexes were automatically dropped. (MDEV-32449)

  • Server crashes in check_sequence_fields upon CREATE TABLE .. SEQUENCE=1 AS SELECT .. (MDEV-29771)

  • Crash when searching for the best split of derived table (MDEV-32064)

  • InnoDB: Failing assertion purge_sys.tail.trx_no <= purge_sys.rseg->last_trx_no() could cause a crash some time after a recovered incomplete transaction was rolled back after crash recovery. This may cause a crash loop. (MDEV-30100)

  • When a new user is connecting or a user is changing the password while FLUSH PRIVILEGES is executed, the server can crash (MENT-1707)

Can result in unexpected behavior

  • When ssl-mode=CA_VERIFY is used and mariabackup is selected as the SST method an incremental state transfer(IST) may be rejected (MENT-2016)

    • The following error will be shown in the server log

      WSREP_SST: [ERROR] Donor does not know my secret! (20231003 15:29:10.448)
      
    • An SST will be triggered instead, which usually takes longer to complete.

  • Prefix keys for CHAR return error "ERROR 1062 (23000): Duplicate entry 'ß' for key 'a' " for MyISAM and Aria when inserting data (MDEV-30048)

  • Possible wrong results of DISTINCT with NOPAD collations when SET big_tables=1; is set (MDEV-30050)

  • When executing a statement with "WHERE inet6_column IN ('','::1')", an empty string would also return values of "::", also they are not equal. (MDEV-31719)

  • Missed kill when the SQL thread goes to wait for parallel slave worker queues to drain. KILL query did not affect a replication thread which remained alive, unexpectedly by the user. (MDEV-29974)

  • InnoDB tries to purge non-delete-marked records of an index on a virtual column prefix. An error like "InnoDB: tried to purge non-delete-marked record in index b of table test`.`t is shown in the server log (MDEV-30024)

  • Corrupt index(es) on busy table when using FOREIGN KEY. Error "InnoDB: Flagged corruption of INDEX_NAME in table DBNAME`.`TBLNAME in purge" in the server log. (MDEV-30531)

  • lock_row_lock_current_waits counter in information_schema.innodb_metrics may become negative (MDEV-30658)

  • InnoDB Recovery doesn't display encryption message when no encryption configuration passed (MDEV-31098)

  • SHOW REPLICA STATUS Last_SQL_Errno race condition on Errored replica restart. A contradictory YES of slave_running_status and an error code in Last_SQL_Errno will be shown (MDEV-31177)

  • Wrong information about innodb_checksum_algorithm in the information_schema.SYSTEM_VARIABLES. NONE or STRICT_NONE, or STRICT_INNODB should not be shown anymore (MDEV-31473)

  • Auto-increment no longer works for explicit FTS_DOC_ID (MDEV-32017)

  • In some cases, replaying transactions on other MariaDB Enterprise Cluster nodes results in an wrong "Failed to insert streaming client" warning (MDEV-32051)

  • Wrong bit encoding using COALESCE (MDEV-32244)

  • getting error 'Illegal parameter data types row and bigint for operation '+' ' when using ITERATE in a FOR..DO (MDEV-32275)

  • While checking for altered column in foreign key constraints, InnoDB fails to ignore virtual columns (MDEV-32337)

  • Write-ahead logging is broken for freed pages (MDEV-32552)

  • seconds_behind_master is inaccurate for Delayed replication (MDEV-32265)

  • InnoDB may fail to recover after being killed in fil_delete_tablespace() with note "InnoDB: Multi-batch recovery needed at LSN 78671708" in the server log. Setting innodb_force_recovery=1 can be used as a workaround. (MDEV-31826)

  • The wsrep_sst_method variable can be set to an invalid value using the SET statement. (MDEV-31470)

  • A query over FEDERATED table that uses a Common Table Expression and is executed by pushing it down to a Federated backend could fail with "Unknown error 10000" error. (MENT-1668)

  • Misleading help text for mysqlbinlog (mariadb-binlog) -T/--table option (MDEV-25369)

  • mbstream breaks page compression on XFS (MDEV-25734)

  • MyISAM tables took transactional metadata locks although there where no active transaction. (MDEV-28820)

  • "rpm --setugids" breaks PAM authentication (MDEV-30904)

  • A multi-row Insert into an empty table fails if the table has a unique index using hash. CHECK TABLE returns with "Table 't1' is marked as crashed and should be repaired" (MDEV-32015)

  • wrong table name in InnoDB's "row too big" errors (MDEV-32128)

  • A prepared statement can return a wrong result with a missing row, if IS NULL is used in the query (MDEV-9938)

  • Slow log Rows_examined for the slow_log can be out of range. In this case, the server log includes "([ERROR] Unable to write to mysql.slow_log)" (MDEV-30820)

  • An incorrect examined rows number is used in some cases like in the slow query log, with LIMIT ROWS EXAMINED, or with ANALYZE FORMAT=JSON when a query gets executed inside of a function. Each stored function call doubles the current count during processing (MDEV-31742)

  • CONVERT TABLE TO PARTITION returns with "ER_TABLEACCESS_DENIED_ERROR (1142)" although the user has sufficient privileges to execute the statement (MENT-1993)

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.16-11 is provided for:

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (MariaDB Enterprise Cluster excluded)

  • 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 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

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