Release Notes for MariaDB Enterprise Server 10.6.15-10
This page is part of MariaDB's Documentation.
The parent of this page is: Release Notes for MariaDB Enterprise Server 10.6
Topics on this page:
Overview
MariaDB Enterprise Server 10.6.15-10 is a maintenance release of MariaDB Enterprise Server 10.6. This release includes a variety of fixes.
MariaDB Enterprise Server 10.6.15-10 was released on 2023-09-11.
Changes in Storage Engines
This release originally incorporated MariaDB ColumnStore engine version 23.02.4.
This release now incorporates MariaDB ColumnStore engine version 23.10.0.
Backports
JSON_OVERLAPS()
has been backported. (MENT-1853)The
JSON_OVERLAPS()
function can be used to compare two JSON documents to determine if they have any key-value pairs or array elements in common.
SELECT JSON_OVERLAPS('{"A": 1, "B": {"C":2}}', '{"A": 2, "B": {"C":2}}') AS is_overlap;
+---------------------+ | is_overlap | +---------------------+ | 1 | +---------------------+
JSON_SCHEMA_VALID()
has been backported. (MENT-1796)The
JSON_SCHEMA_VALID()
function can be used to validate a JSON document against a JSON schema, as documented by the JSON Schema Draft 2020.This function can also be used in a
CHECK
constraint to verify that JSON documents are only stored in the database if they include required items and that the values are within a given range and length.
Notable Changes
The package for the
cracklib_password_check
plugin includes an SELinux policy, allowing the plugin to work with SELinux. (MDEV-18374)MariaDB Enterprise Backup reports detailed recovery progress during
mariabackup --prepare
. (MDEV-29911)With Optimizer Trace, a
sel_arg_alloc_limit_hit
record is written whenMAX_SEL_ARGS
is reached. (MDEV-30964)MAX_SEL_ARGS
is one of the limits in the optimizer that triggers short-cut of time-intensive or memory-intensive analysis for complexWHERE
clauses.For example:
SELECT JSON_DETAILED(JSON_EXTRACT(trace, '$**.setup_range_conditions')) FROM information_schema.OPTIMIZER_TRACE;
[ [ { "sel_arg_alloc_limit_hit": { "alloced_sel_args": 16001 } } ] ]
ANALYZE FORMAT=JSON
output includes InnoDB statistics. (MDEV-31577)For example:
"table": { "table_name": "t1", ... "r_engine_stats": { "pages_accessed": integer, "pages_updated" : integer, "pages_read_count" : integer, "pages_read_time_ms" : double_val, "old_rows_read" : integer, },
Slow query log output includes InnoDB engine information. (MDEV-31558)
InnoDB engine information output is enabled with
--log-slow-verbosity=innodb
Sample output:
# Pages_accessed: 184 Pages_read: 95 Pages_updated: 0 Undo_rows_read: 1 # Pages_read_tim e: 17.0204 Engine_time: 248.1297
Engine_time
is the time in milliseconds spent inside engine calls.Page_*
variables are supported for the InnoDB storage engine.
For the Spider storage engine, the default values and behavior of some system variables has changed: (MDEV-31524)
Prior to this release:
These variables used a value of
-1
(the default) to indicate that Spider would use the default table value, and this value was not user visible.Spider table parameters could set values, but these values would be overridden with the system variable value if the system variable was set to a value other than
-1
.
Starting with this release:
The default value for these system variables has been updated to reflect the actual default table value, rather than
-1
.Where a value is set by a table parameter, this value overrides the system default and the value set by Spider system variable.
If a table parameter is not set, the Spider system variable's value is used. This behavior is unchanged.
See "Interface Changes" for a full list of updated default values.
Issues Fixed
Can result in data loss
With InnoDB storage engine, when
innodb_undo_log_truncate=ON
, performing a recovery can result in a corrupted undo log. (MDEV-31373)With InnoDB storage engine, when database encryption is enabled only on a replica, InnoDB pages can be corrupted. (MDEV-31347, MDEV-31156)
With InnoDB storage engine, when
innodb_undo_log_truncate=ON
, backup and recovery can fail. (MDEV-31487)With InnoDB storage engine, if two MariaDB Server instances using InnoDB are started with the same data directory there can be data loss. (MDEV-31568)
Can result in a hang or crash
With InnoDB storage engine, a hang can occur with the following error: (MDEV-31353)
[Note] InnoDB: Set innodb_force_recovery=1 to ignore corrupted pages.
With Aria storage engine, when Aria encryption is enabled and used but an encryption plugin is not loaded, the server can crash. (MDEV-26258)
With Galera Cluster, a Galera node can fail while aborting a transaction. (MDEV-30963)
Assertion failure:
!lock.was_chosen_as_deadlock_victim
With Galera Cluster, when
wsrep_sst_donor
andwsrep_cluster_address
are set toNULL
rather than an empty string, the server can crash. (MDEV-28433)When accessing
information_schema.INNODB_BUFFER_PAGE
orinformation_schema.INNODB_BUFFER_PAGE_LRU
after starting the server and processing a crash recovery, the server can crash. (MDEV-31386)When
optimizer_switch='optimize_join_buffer_size=off'
is set, the server can crash. (MDEV-31348)When executing a
SELECT
query using an index forGROUP BY
and filesort, the server can crash. (MDEV-30143)With MariaDB Connector/C, when the
mysql_list_fields()
function is called against a view, the server can crash. (MDEV-30159)With Aria storage engine, changing
aria_sort_buffer_size
settings to huge numbers and executingINSERT/UPDATE
can result in a crash. (MDEV-28054)With InnoDB storage engine, when
slave_parallel_mode
isoptimistic
andslave_parallel_threads
is greater than0
, anALTER SEQUENCE
can fail with anout-of-order
binlog error if theSEQUENCE
uses InnoDB. (MDEV-31503)Prior to this release, 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.
With replication, when
binlog_format=ROW
is set on the primary server andslave_run_triggers_for_rbr=1
is set on the replica server, the replica server can crash when calling a function from a different database within aTRIGGER
on the replica. (MDEV-29894)During a simple
SELECT
, a crash can occur inType_handler_json_common::make_json_valid_expr
(MENT-1875)With
SQL_MODE=ORACLE
, a memory leak can occur on shutdown. (MDEV-26186)Queries in the form
SELECT DISTINCT function_returning_string(aggregate_func(...)) ... GROUP BY ...
could produce an assertion failure or wrong result. (MDEV-31743)With InnoDB storage engine, InnoDB can purge history too early, causing crash on undo record access in MVCC read. (MDEV-31355)
With InnoDB storage engine, when
innodb_change_buffering=changes
andinnodb_file_per_table=0
, the server can hang. (MDEV-31088)With InnoDB storage engine, purge on partitioned table can lead to a crash. (MDEV-31264)
With InnoDB storage engine, when executing a statement that rebuilds an InnoDB table (such as
TRUNCATE TABLE
,OPTIMIZE TABLE
,ALTER TABLE
, or as part of executinginnodb_undo_log_truncate=ON
), the server can hang. (MDEV-31442)With InnoDB storage engine, when a
BINARY(0)
orVARBINARY(0)
column in an InnoDB table is indexed, the server can crash. (MDEV-19216)With InnoDB storage engine, when reading or writing InnoDB data pages, asynchronous I/O errors can cause the server to crash. (MDEV-27593)
For a System Versioned table, when adding a key to a virtual column, the server can crash. (MDEV-31416)
Setting
session_track_system_variables
globally to an invalid value can cause the server to crash. (MDEV-25237)With Galera Cluster, a cluster node can crash during IST when rolling back a transaction. (MDEV-29724)
Replication from an older MariaDB Server version to a newer MariaDB Server version can break, and the server may crash. (MENT-1935)
A mismatch in hash values was caused by use of different hash functions, causing rows in tables having explicit or implicit unique hash indexes to be treated as different rows between different versions of MariaDB Server even though the data in the rows was the same.
Can result in unexpected behavior
For a System Versioned table with non-versioned columns, if the initial
INSERT
includes a versioned column, an "on duplicate key update" for the non-versioned column generates a history record. (MDEV-23100)With Spider storage engine, setting a system variable overrides the value set as a table parameter. (MDEV-31524)
With InnoDB storage engine, secondary indexes can be corrupted when a previously freed page is later reused. This is caused by change buffer entries being left behind when a page is freed. (MDEV-31385)
The "pam_
user_ map" module does not correctly handle usernames or group names containing the "@" character. (MDEV-31336) With some Unicode collations, JSON functions can return incorrect results. (MDEV-23187)
With
sql_mode=ORACLE
,information_schema.ROUTINES.ROUTINE_DEFINITION
does not correctly contain thePACKAGE
orPACKAGE BODY
(MDEV-30662)Stored routines with
ROW
variables set by subselects can produce incorrect results. (MDEV-31250)Integer multiplication,
DIV
,MOD
, orROUND/TRUNCATE
could return unexpected results when an argument is evaluated as-9223372036854775808
(MDEV-30932)With Galera Cluster, when using a
KILL QUERY
statement on a Galera node that executes user transactions, GTID sequence drift can occur between writer and appliers nodes. At the same time, data consistency is maintained andwsrep_last_committed
is in sync. (MDEV-31075)With Galera Cluster, creating a
TEMPORARY SEQUENCE
can cause inconsistency. (MDEV-31335)With Galera Cluster, the state of the cluster can only be retrieved from the primary component. (MDEV-21479)
information_schema.PARAMETERS
can include outdated data when a stored routine is changed in one session while the stored routine is being used in a second session. (MDEV-31064)Queries that use multiple
RANK
window functions can produce the wrong result. (MDEV-20010)Queries that use the
<
"less than" operator to compare a string with a prefixedBLOB
key produce the wrong result. (MDEV-31800)Recursive CTE execution is interrupted without errors or warnings when
max_recursive_iterations
is reached. (MDEV-31214)Starting with this release, a warning occurs when
max_recursive_iterations
is reached:Warning 1931 Query execution was interrupted. The query exceeded max_recursive_iterations = 1000. The query result may be incomplete.
On Microsoft Windows, when
lower_case_table_names=2
,SHOW TABLES
does not work properly. (MDEV-30765)When the system is busy,
STOP REPLICA
can take a long time. (MDEV-13915)With parallel replication,
Seconds_Behind_Master
can show a wrong value. (MDEV-30619)With replication for System Versioned tables, having a parent table and a child table
WITH SYSTEM VERSIONING
where child table has a Foreign KeyCASCADE
generates orphan rows on replica. (MDEV-31313)With replication, when in read-only mode,
XA COMMIT/XA ROLLBACK
on the replica fails to return an error. (MDEV-30978)mariadb-dump --force
can stop with the errorCouldn't execute 'SHOW CREATE FUNCTION `object`':
even though--force
should cause the error to be ignored. (MDEV-31092)A query using
DISTINCT
,LIMIT
with offset, and subselect to join tables produces an unexpected result. (MDEV-28285)The
TO_CHAR()
function returns an unclear error when an incorrect argument has been provided for the format string: (MDEV-29152)ER_STD_INVALID_ARGUMENT (3047): Invalid argument error: data type of first argument must be type date/datetime/time or string in function to_char.
With the ColumnStore storage engine and Federated storage engine,
ANALYZE
can return the incorrect value0
forr_rows
(MDEV-29284)With InnoDB storage engine,
SET GLOBAL innodb_undo_log_truncate=ON
does not free space when no undo logs exist. (MDEV-31382)With InnoDB storage engine, freed data pages are not always scrubbed. (MDEV-31253)
With InnoDB storage engine, when setting
innodb_open_files
to a number lower than the number of tables used, an error can be shown in the server log and the operation will be aborted. (MDEV-31256)ALTER TABLE .. MODIFY COLUMN
can break foreign key constraints and lead to unrestorable dumps. (MDEV-31086)With InnoDB storage engine, three concurrent
DELETE
by aUNIQUE
key can cause an unexpected deadlock. (MDEV-10962)With InnoDB storage engine,
innochecksum
fails withFloating point exception
error. (MDEV-31641)With InnoDB storage engine, server status variables
Innodb_row_lock_time
,Innodb_row_lock_time_avg
andInnodb_row_lock_time_max
are reported in seconds instead of milliseconds. (MDEV-29311)With InnoDB storage engine, a duplicate entry is allowed into a
UNIQUE
column. (MDEV-31120)With InnoDB storage engine, in some rare cases InnoDB tables are being incorrectly flagged as corrupted on an I/O bound server. (MDEV-31767)
With HashiCorp key management plugin, possible memory leaks. (MENT-1874)
Using functions
MAX()
orMIN()
with functionsROUND(time)
,CEILING(time)
, orFLOOR(time)
as an argument can return wrong results. (MDEV-23838)Querying a table with a Virtual Column, when the query has a
WHERE
clause, can return no results. (MENT-1925)For transaction precise System Versioned tables,
UPDATE
can return an unexpected error:ERROR 1761 (23000): Foreign key constraint for table 'xxx', record 'yyy' would lead to a duplicate entry in table 'xxx', key 'PRIMARY'
(MDEV-25644)Assertion
const_item_cache == true
failed inItem_func::fix_fields
when a flow control statement (such asIF()
) was used in a generated column. (MDEV-31319)Creating a table with a foreign key (with a cascade action) defined on a base column of a virtual column is not rejected. (MDEV-18114, MDEV-31322)
Starting with this release, it is no longer possible to create
STORED
generated columns andCHECK
constraints when values of the affected columns can be changed by foreign key constraint actions, such asSET NULL
orON UPDATE CASCADE
.Starting with this release, this results in an error like:
ERROR 1901 (HY000): Function or expression 'f_id' cannot be used in the GENERATED ALWAYS AS clause of 'v_id'
Starting with this release, for existing tables with
STORED
generated columns,SET NULL
andON UPDATE CASCADE
are ignored.
Related to performance
With InnoDB storage engine, performance regression vs MariaDB Enterprise Server 10.5 for full index scans when
innodb_flush_method=fsync
and I/O bound. (MENT-1933)With InnoDB storage engine, performance regression vs MariaDB Enterprise Server 10.5 for
LOAD DATA
into InnoDB tables with partitions. (MENT-1938)If a long-running query on one connection uses a table subject to a
ANALYZE TABLE
on another connection to collect statistics, all further queries on that table had to wait for the long-running query to finish. (MENT-1937)With partitioning, possible slow down of queries. (MDEV-24712)
With InnoDB storage engine, linear read-ahead (controlled by the
innodb_read_ahead_threshold
system variable) does not work as expected. This can impact performance ofmariadb-dump
and some queries that perform a full table scan. (MDEV-29967)With InnoDB storage engine, query execution is slow due to incorrect estimates for range access paths. (MDEV-30684)
Range access paths are constructed when a query's
WHERE
clause compares indexed columns with constants.Having wrong estimates can cause the optimizer to pick sub-optimal query plan, which may result in a slow query execution.
Related to install and upgrade
mariadb-upgrade
can crash withError ""Cannot load from mysql.proc. The table is probably corrupted""
(MDEV-28915)This can occur when upgrading from a release series that uses the
utf8mb3
character set forutf8
to a release series that usesutf8mb4
for theutf8
character set.
Interface Changes
aria_
sort_ system variable maximum value changed frombuffer_ size 9223372036854775807
to1152921504606846975
(MDEV-28054)aria_
sort_ system variable minimum value changed frombuffer_ size 4096
to16376
(MDEV-28054)ER_
JSON_ error code added (MENT-1796)INVALID_ VALUE_ FOR_ KEYWORD ER_
JSON_ error code added (MENT-1796)SCHEMA_ KEYWORD_ UNSUPPORTED ER_
QUERY_ error code removed (MDEV-31214)EXCEEDED_ ROWS_ EXAMINED_ LIMIT ER_
QUERY_ error code added (MDEV-31214)RESULT_ INCOMPLETE ER_
QUERY_ error code removedTIMEOUT ER_
UNUSED_ error code added1 JSON_
OVERLAPS() function added (MENT-1853)JSON_
SCHEMA_ function added (MENT-1796)VALID() myisam_
sort_ system variable maximum value changed frombuffer_ size 18446744073709551615
to1152921504606846975
(MDEV-28054)
Spider Storage Engine
spider_
auto_ system variable default value changed fromincrement_ mode -1
to0
(MDEV-31524)spider_
bgs_ system variable default value changed fromfirst_ read -1
to2
(MDEV-31524)spider_
bgs_ system variable default value changed frommode -1
to0
(MDEV-31524)spider_
bgs_ system variable default value changed fromsecond_ read -1
to100
(MDEV-31524)spider_
bka_ system variable default value changed frommode -1
to1
(MDEV-31524)spider_
bka_ system variable default value changed fromtable_ name_ type -1
to0
(MDEV-31524)spider_
buffer_ system variable default value changed fromsize -1
to16000
(MDEV-31524)spider_
bulk_ system variable default value changed fromsize -1
to16000
(MDEV-31524)spider_
bulk_ system variable default value changed fromupdate_ mode -1
to0
(MDEV-31524)spider_
bulk_ system variable default value changed fromupdate_ size -1
to16000
(MDEV-31524)spider_
casual_ system variable default value changed fromread -1
to0
(MDEV-31524)spider_
connect_ system variable default value changed fromtimeout -1
to6
(MDEV-31524)spider_
crd_ system variable default value changed frombg_ mode -1
to2
(MDEV-31524)spider_
crd_ system variable default value changed frominterval -1
to51
(MDEV-31524)spider_
crd_ system variable default value changed frommode -1
to1
(MDEV-31524)spider_
crd_ system variable default value changed fromsync -1
to0
(MDEV-31524)spider_
crd_ system variable default value changed fromtype -1
to2
(MDEV-31524)spider_
crd_ system variable default value changed fromweight -1
to2
(MDEV-31524)spider_
delete_ system variable default value changed fromall_ rows_ type -1
to1
(MDEV-31524)spider_
direct_ system variable default value changed fromdup_ insert -1
to0
(MDEV-31524)spider_
direct_ system variable default value changed fromorder_ limit System Variable -1
to9223372036854775807
(MDEV-31524)spider_
error_ system variable default value changed fromread_ mode -1
to0
(MDEV-31524)spider_
error_ system variable default value changed fromwrite_ mode -1
to0
(MDEV-31524)spider_
first_ system variable default value changed fromread -1
to0
(MDEV-31524)spider_
init_ system variable default value changed fromsql_ alloc_ size -1
to1024
(MDEV-31524)spider_
internal_ system variable default value changed fromlimit -1
to9223372036854775807
(MDEV-31524)spider_
internal_ system variable default value changed fromoffset -1
to0
(MDEV-31524)spider_
internal_ system variable default value changed fromoptimize -1
to0
(MDEV-31524)spider_
internal_ system variable default value changed fromoptimize_ local -1
to0
(MDEV-31524)spider_
load_ system variable default value changed fromcrd_ at_ startup -1
to1
(MDEV-31524)spider_
load_ system variable default value changed fromsts_ at_ startup -1
to1
(MDEV-31524)spider_
low_ system variable default value changed frommem_ read -1
to1
(MDEV-31524)spider_
max_ system variable default value changed fromorder -1
to32767
(MDEV-31524)spider_
multi_ system variable default value changed fromsplit_ read -1
to100
(MDEV-31524)spider_
net_ system variable default value changed fromread_ timeout -1
to600
(MDEV-31524)spider_
net_ system variable default value changed fromwrite_ timeout -1
to600
(MDEV-31524)spider_
quick_ system variable default value changed frommode -1
to3
(MDEV-31524)spider_
quick_ system variable default value changed frompage_ byte -1
to10485760
(MDEV-31524)spider_
quick_ system variable default value changed frompage_ size -1
to1024
(MDEV-31524)spider_
read_ system variable default value changed fromonly_ mode -1
to0
(MDEV-31524)spider_
reset_ system variable default value changed fromsql_ alloc -1
to1
(MDEV-31524)spider_
second_ system variable default value changed fromread -1
to0
(MDEV-31524)spider_
select_ system variable default value changed fromcolumn_ mode -1
to1
(MDEV-31524)spider_
selupd_ system variable default value changed fromlock_ mode -1
to1
(MDEV-31524)spider_
semi_ system variable default value changed fromsplit_ read -1
to2
(MDEV-31524)spider_
semi_ system variable default value changed fromsplit_ read_ limit -1
to9223372036854775807
(MDEV-31524)spider_
semi_ system variable default value changed fromtable_ lock 1
to0
(MDEV-31524)spider_
semi_ system variable default value changed fromtable_ lock_ connection -1
to1
(MDEV-31524)spider_
skip_ system variable default value changed fromdefault_ condition -1
to0
(MDEV-31524)spider_
skip_ system variable default value changed fromparallel_ search -1
to0
(MDEV-31524)spider_
split_ system variable default value changed fromread -1
to9223372036854775807
(MDEV-31524)spider_
store_ system variable default value changed fromlast_ crd -1
to1
(MDEV-31524)spider_
store_ system variable default value changed fromlast_ sts -1
to1
(MDEV-31524)spider_
strict_ system variable default value changed fromgroup_ by -1
to1
(MDEV-31524)spider_
sts_ system variable default value changed frombg_ mode -1
to2
(MDEV-31524)spider_
sts_ system variable default value changed frominterval -1
to10
(MDEV-31524)spider_
sts_ system variable default value changed frommode -1
to1
(MDEV-31524)spider_
sts_ system variable default value changed fromsync -1
to0
(MDEV-31524)spider_
udf_ system variable default value changed fromct_ bulk_ insert_ interval -1
to10
(MDEV-31524)spider_
udf_ system variable default value changed fromct_ bulk_ insert_ rows -1
to100
(MDEV-31524)spider_
udf_ system variable default value changed fromds_ bulk_ insert_ rows -1
to3000
(MDEV-31524)spider_
udf_ system variable default value changed fromds_ table_ loop_ mode -1
to0
(MDEV-31524)spider_
udf_ system variable default value changed fromds_ use_ real_ table -1
to0
(MDEV-31524)spider_
use_ system variable default value changed fromhandler -1
to0
(MDEV-31524)spider_
use_ system variable default value changed fromtable_ charset -1
to1
(MDEV-31524)
Platforms
In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.6.15-10 is provided for:
CentOS 7 (x86_
64) Debian 10 (x86_
64, ARM64) Debian 11 (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".
Installation Instructions
Enterprise Cluster Topology with MariaDB Enterprise Server 10.6
Primary/Replica Topology with MariaDB Enterprise Server 10.6
HTAP Topology with MariaDB Enterprise Server 10.6 and MariaDB Enterprise ColumnStore 6
Single-Node Enterprise ColumnStore 6 with MariaDB Enterprise Server 10.6 and Object Storage
Single-Node Enterprise ColumnStore 6 with MariaDB Enterprise Server 10.6
Enterprise Spider Sharded Topology with MariaDB Enterprise Server 10.6
Enterprise Spider Federated Topology with MariaDB Enterprise Server 10.6