# Release Notes for MariaDB Enterprise Server 11.4.9-6

{% hint style="info" %}

<p align="center">The most recent release of MariaDB Enterprise Server 11.4 is:</p>

<h4 align="center"><a href="11.4.10-7"><strong>MariaDB Enterprise Server 11.4.10-7</strong></a> <a href="https://mariadb.com/downloads/enterprise/enterprise-server/" class="button primary">Download Now</a></h4>
{% endhint %}

<a href="https://mariadb.com/downloads/enterprise/enterprise-server/" class="button primary">Download</a> <a href="11.4.9-6" class="button secondary">Release Notes</a> <a href="changelog-11.4.9-6" class="button secondary">Changelog</a> <a href="whats-new" class="button secondary">Overview of Enterprise Server 11.4</a>

**Release date:** 11 Dec 2025

MariaDB Enterprise Server 11.4.9-6 is a Stable (GA) maintenance release of [MariaDB Enterprise Server 11.4](https://mariadb.com/docs/release-notes/enterprise-server/11.4/whats-new). This release includes a variety of fixes.

## Fixed Security Vulnerabilities <a href="#fixed-security-vulnerabilities" id="fixed-security-vulnerabilities"></a>

| **CVE (with** [**cve.org**](https://cve.org/) **link)**                        | **CVSS base score** |
| ------------------------------------------------------------------------------ | ------------------- |
| [CVE-2026-21968](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-21968) | 6.5                 |

## Backports

* Log write buffering added to the [SERVER\_AUDIT](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/reference/plugins/mariadb-audit-plugin) and [SERVER\_AUDIT2](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/reference/plugins/mariadb-enterprise-audit) plugins ([MENT-2438](https://jira.mariadb.org/browse/MENT-2438))
  * The buffering is controlled by the added variables:
    * `server_audit_file_buffer_size` - defines the size of the buffer. The default value is 0 meaning there's no buffering at all. Setting non-zero value enables the buffering with the buffer of the specified size aligned by 8192. The maximum value is 65536.
    * `server_audit_sync_log_file` - flushes the buffer to the log file. While the log record is in the buffer, it cannot be seen in the log file. And if there are not many events to log, the time before records can be observed can be significant. So user can do `SET GLOBAL server_audit_log_file=1` to this variable to force write the buffer to the file, to make sure he doesn't miss the recent records.
* Two new fields are available via `SHOW REPLICA STATUS` ([MENT-2129](https://jira.mariadb.org/browse/MENT-2129))
  1. `Connects_Tried`, which provides the number of attempts the replica has made to connect to the primary, and
  2. `Master_Retry_Count`, which provides the number of times the replica will attempt to connect to a primary before giving up.
* The authentication plugin `caching_sha2_password` has been added, not loaded by default ([MDEV-37600](https://jira.mariadb.org/browse/MDEV-37600))

## Changes in Storage Engines <a href="#changes-in-storage-engines" id="changes-in-storage-engines"></a>

* This release incorporates MariaDB ColumnStore engine version 25.10.2

## Notable changes <a href="#notable-changes" id="notable-changes"></a>

* [Galera](https://app.gitbook.com/o/diTpXxF5WsbHqTReoBsS/s/3VYeeVGUV4AMqrA3zwy7/) updated to 26.4.24
  * NOTE: Includes increasing the GCS protocol version, which prevents downgrades of individual nodes in the cluster as soon as all nodes have been updated
* Due to the impending EOL of Windows 10 22H2, and Windows 11 23H2, this will be the last release supporting these releases
* The `PrivateDevices=false` directive in the `systemd` service has been removed as it was an old kernel incompatibility that this directive worked around. With this, MariaDB is restricted further. Those using InnoDB on raw devices will need to add an override for this. See [Useful systemd Options](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/starting-and-stopping-mariadb/systemd#useful-systemd-options) ([MDEV-36721](https://jira.mariadb.org/browse/MDEV-36721))
* The HashiCorp Key Management Plugin has been updated to provide robust stability against Vault communication failures:
  * The plugin is now configured to use cached keys for all communication errors (not just timeouts), ensuring continuous operation when the Vault server is temporarily unreachable.
  * The default setting for using the cache on errors is now `ON`.
  * The default key cache timeout ([hashicorp\_key\_management\_cache\_timeout](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/security/encryption/data-at-rest-encryption/key-management-and-encryption-plugins/hashicorp-key-management-plugin#hashicorp-key-management-cache-timeout)) has been increased to its maximum practical value (e.g., one year in milliseconds), maximizing key availability in the cache during extended service interruptions. ([MENT-1582](https://jira.mariadb.org/browse/MENT-1582))

## Issues Fixed <a href="#issues-fixed" id="issues-fixed"></a>

### Can result in data loss

* Failure to detect corruption during backups of Aria table ([MDEV-37520](https://jira.mariadb.org/browse/MDEV-37520))

### Can result in hang or crash

* DDL in procedure propagates no locking to tables locked by DML ([MDEV-16686](https://jira.mariadb.org/browse/MDEV-16686))
* Assertion \`table\_share->tmp\_table != NO\_TMP\_TABLE || m\_lock\_type == 1' failed upon REBUILD PARTITION ([MDEV-20498](https://jira.mariadb.org/browse/MDEV-20498))
* SIGSEGV in replace\_user\_table when changing mysql db tables ([MDEV-23731](https://jira.mariadb.org/browse/MDEV-23731))
* SIGSEGV in replace\_db\_table on GRANT ([MDEV-24206](https://jira.mariadb.org/browse/MDEV-24206))
* Prevent MariaDB server crash when a query includes a derived table containing unnamed column. ([MDEV-24588](https://jira.mariadb.org/browse/MDEV-24588))
* SIGSEGV in replace\_table\_table on GRANT ([MDEV-24814](https://jira.mariadb.org/browse/MDEV-24814))
* Crash when calling stored function in FOR loop argument ([MDEV-26115](https://jira.mariadb.org/browse/MDEV-26115))
* Spider: Assertion \`inited==RND' failed in handler::ha\_rnd\_end on DELETE ([MDEV-26540](https://jira.mariadb.org/browse/MDEV-26540))
* Several bugs in SPATIAL INDEX page splitting logic could crash InnoDB if the PRIMARY KEY or the SPATIAL data is variable-length. ([MDEV-27675](https://jira.mariadb.org/browse/MDEV-27675))
* SIGSEGV in replace\_routine\_table on GRANT ([MDEV-27842](https://jira.mariadb.org/browse/MDEV-27842))
* Setting wsrep\_slave\_threads causes thread hang ([MDEV-30418](https://jira.mariadb.org/browse/MDEV-30418))
* InnoDB could crash if the definition of the InnoDB persistent statistics tables were incorrect. ([MDEV-31740](https://jira.mariadb.org/browse/MDEV-31740))
* Correlated derived table query merges can cause crashes, especially with prepared statements. ([MDEV-32294](https://jira.mariadb.org/browse/MDEV-32294))
* Server crash on cleanup of non-fully-constructed-due-to-an-error CTE ([MDEV-32308](https://jira.mariadb.org/browse/MDEV-32308))
* Crash if subquery is a UNION of SELECT rand() and uncorrelated SELECT ([MDEV-32403](https://jira.mariadb.org/browse/MDEV-32403))
* JSON\_ARRAY\_INTERSECT function crashes the server when called with empty json arrays, UBSAN runtime error: member access within null pointer of type 'struct String' in Item\_func\_json\_array\_intersect::prepare\_json\_and\_create\_hash ([MDEV-33149](https://jira.mariadb.org/browse/MDEV-33149))
* Assertion \`0' failed in void wsrep::transaction::state(wsrep::unique\_lock<wsrep::mutex>&, wsrep::transaction::state) ([MDEV-33250](https://jira.mariadb.org/browse/MDEV-33250))
* Assertion \`! thd->in\_sub\_stmt' failed in bool trans\_rollback\_stmt(THD\*) ([MDEV-34117](https://jira.mariadb.org/browse/MDEV-34117))
* Assertion \`ist\_seqno >= cc\_seqno' failed in galera\_vote\_rejoin\_dml ([MDEV-35964](https://jira.mariadb.org/browse/MDEV-35964))
* Mariadb server crashed during insert ([MDEV-36134](https://jira.mariadb.org/browse/MDEV-36134))
* InnoDB could potentially crash if there is any lock conflict on an internal FTS\_%\_CONFIG table of a FULLTEXT INDEX while one of the INFORMATION\_SCHEMA views INNODB\_TRX, INNODB\_LOCKS, or INNODB\_LOCK\_WAITS are being accessed. ([MDEV-36545](https://jira.mariadb.org/browse/MDEV-36545))
* Assertion \`bulk\_insert == TRX\_NO\_BULK' failed in trx\_t::assert\_freed from innodb\_shutdown ([MDEV-36771](https://jira.mariadb.org/browse/MDEV-36771))
* json\_array\_intersect previously crashed when there was an unused table reference in the SQL query. ([MDEV-36809](https://jira.mariadb.org/browse/MDEV-36809))
* Assertion \`client\_state.transaction().active()' failed in int wsrep\_thd\_append\_key(THD\*, const wsrep\_key\*, int, Wsrep\_service\_key\_type) ([MDEV-36909](https://jira.mariadb.org/browse/MDEV-36909))
* SIGSEGV in wsrep\_check\_sequence | mysql\_alter\_table ([MDEV-37056](https://jira.mariadb.org/browse/MDEV-37056))
* sql/wsrep\_allowlist\_service.cc:40:27: runtime error: member call on null pointer of type 'Wsrep\_schema' ([MDEV-37136](https://jira.mariadb.org/browse/MDEV-37136))
* Fixed crashing bug when inserting into a tables with several nextval(sequence) default values. ([MDEV-37172](https://jira.mariadb.org/browse/MDEV-37172))
* When the server was started in read-only mode with encryption enabled, the fix ensures that InnoDB avoids creating any encryption thread. Testing: encryption.innodb-read-only(MTR Test) contains scenario that can be used to test this change. ([MDEV-37299](https://jira.mariadb.org/browse/MDEV-37299))
* Item\_func\_nextval::val\_int() crash on INSERT...SELECT with subqueries ([MDEV-37345](https://jira.mariadb.org/browse/MDEV-37345))
* Inconsistency detected - create sequence ([MDEV-37366](https://jira.mariadb.org/browse/MDEV-37366))
* InnoDB: Failing assertion: node->pcur->rel\_pos == BTR\_PCUR\_ON ([MDEV-37404](https://jira.mariadb.org/browse/MDEV-37404))
* Parallel replica worker crashes during backup at retrying ([MDEV-37453](https://jira.mariadb.org/browse/MDEV-37453))
* ASAN errors in find\_type2 upon executing a procedure from sys schema ([MDEV-37710](https://jira.mariadb.org/browse/MDEV-37710))
* In rare cases, shutdown might hang ([MDEV-37728](https://jira.mariadb.org/browse/MDEV-37728))
* Galera replication does not preserve the character set and collation associated with views, etc. ([MDEV-37857](https://jira.mariadb.org/browse/MDEV-37857))
* Assertion \`0' failed in int wsrep::transaction::before\_rollback() ([MDEV-37935](https://jira.mariadb.org/browse/MDEV-37935))
* Item\_func\_hex doesn't check for max\_allowed\_packet ([MDEV-37947](https://jira.mariadb.org/browse/MDEV-37947))
* MDL conflict between CREATE TRIGGER and INSERT ([MDEV-37965](https://jira.mariadb.org/browse/MDEV-37965))
* Galera cluster crashes when granting permission to non existing user after setting max\_error\_count and wsrep\_ignore\_apply\_errors to zero ([MDEV-37991](https://jira.mariadb.org/browse/MDEV-37991))
* Galera nodes should operate when transaction-read-only=ON ([MDEV-38073](https://jira.mariadb.org/browse/MDEV-38073))
* Assertion \`level != Sql\_condition::WARN\_LEVEL\_ERROR' failed in void push\_warning(THD\*, Sql\_state\_errno\_level::enum\_warning\_level, uint, const char\*) ([MDEV-38201](https://jira.mariadb.org/browse/MDEV-38201))
* MDL conflict between XA and DDL in MariaDB Enterprise Cluster ([MENT-2405](https://jira.mariadb.org/browse/MENT-2405))
* Race of rolling back and committing transaction to binlog ([MENT-2448](https://jira.mariadb.org/browse/MENT-2448))
* For large transactions (i.e. those whose data exceeds the binlog\_cache\_size limit and spills into tmp files), provides a general performance improvement and fixes a bug that would lead to binlog corruption where the large transaction would have its GTID written into the binary log, without any additional transaction data, if the server's --tmp-dir was full. ([MENT-2451](https://jira.mariadb.org/browse/MENT-2451))
* With --encrypt-binlog=ON if a node fails to apply a writeset it will crash the whole cluster due to a bug in Galera library encryption handling. Fixed in Galera library. ([MENT-2474](https://jira.mariadb.org/browse/MENT-2474))

### Can result in unexpected behaviour

* LIMIT ROWS EXAMINED prematurely triggers during optimization ([MDEV-22241](https://jira.mariadb.org/browse/MDEV-22241))
* Corrected the creation of views on JSON\_TABLEs to require no special privileges. ([MDEV-27898](https://jira.mariadb.org/browse/MDEV-27898))
* wsrep\_store\_key\_val\_for\_row() may invoke memcpy() on nullptr ([MDEV-30732](https://jira.mariadb.org/browse/MDEV-30732))
* UPDATE/DELETE of single table queries would now show r\_table\_time\_ms, and r\_other\_time\_ms during ANALYZE FORMAT=JSON ([MDEV-33309](https://jira.mariadb.org/browse/MDEV-33309))
* ALTER TABLE could fail to update InnoDB persistent statistics. ([MDEV-35163](https://jira.mariadb.org/browse/MDEV-35163))
* ALTER TABLE tbl\_a ADD PARTITION (PARTITION pt2) MSAN uninitalized read ([MDEV-36723](https://jira.mariadb.org/browse/MDEV-36723))
* Killed query with side effects without error ([MDEV-37198](https://jira.mariadb.org/browse/MDEV-37198))
* InnoDB partition table disallow local GTIDs in galera ([MDEV-37373](https://jira.mariadb.org/browse/MDEV-37373))
* `mariadb-dump -T` did not encode table names like the server did for `frm` files, so some tables can be created in the server, but not dumped with `mariadb-dump -T`, for example, a table `con` on Windows. ([MDEV-37483](https://jira.mariadb.org/browse/MDEV-37483))
* wsrep\_allowlist allows all connections during SST ([MDEV-37548](https://jira.mariadb.org/browse/MDEV-37548))
* CHECK TABLE…EXTENDED could flag bogus corruption on a column prefix index. ([MDEV-37659](https://jira.mariadb.org/browse/MDEV-37659))
* Table Charset Mismatch (Primary/Replica) via Event ([MDEV-37744](https://jira.mariadb.org/browse/MDEV-37744))
* Under selinux, the galera SST port checking resulted in excessive AVC notices. This has been simplified under selinux. ([MDEV-37899](https://jira.mariadb.org/browse/MDEV-37899))
* ALTER TABLE ... ENGINE=MRG\_MyISAM is now properly logged as an DDL. This ensures that the changed MERGE table cannot be used by a slave thread until after the ALTER command has been executed. ([MDEV-37903](https://jira.mariadb.org/browse/MDEV-37903))
* disable\_index\_merge\_plans causes SELECT data loss when more than 100 ORs ([MDEV-37913](https://jira.mariadb.org/browse/MDEV-37913))
* very long query cannot be killed quickly ([MDEV-37938](https://jira.mariadb.org/browse/MDEV-37938))
* If the server was killed during an operation that creates a .ibd file, such as TRUNCATE TABLE, it could fail to recover. ([MDEV-37994](https://jira.mariadb.org/browse/MDEV-37994))
* If the user specifies some tls-related parameters in spider table creation with odbc/mariadb backend, these parameters could be ill-formatted in the odbc connection string, causing them to be ignored by the driver. ([MENT-2407](https://jira.mariadb.org/browse/MENT-2407))

### Related to Install and Upgrade

* Multiple versions of MariaDB Enterprise Server are now available in the package repositories ([MENT-2456](https://jira.mariadb.org/browse/MENT-2456))
  * For Debian and Ubuntu, see the [Installing Older Versions from the Repository](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/installing-mariadb-deb-files#installing-older-versions-from-the-repository) section of the [Installing MariaDB .deb files](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/installing-mariadb-deb-files) page for details on how to install old versions from the deb repositories
  * For RHEL/Alma/Rocky, see the [Installing Older Versions from the Repository](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/yum#installing-older-versions-from-the-repository) section of the [Installing MariaDB with yum/dnf](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/rpm/yum) page for details on how to install old versions from the rpm repositories

### Related to performance

* Workloads that are bound by innodb\_log\_file\_size would write out unnecessarily many data pages in an attempt to advance the log checkpoint. ([MDEV-35155](https://jira.mariadb.org/browse/MDEV-35155))
* Query does not recognize advantage of using primary key index ([MDEV-36761](https://jira.mariadb.org/browse/MDEV-36761))
* The locking in the audit plugin was simplified in order to remove some scalability bottlenecks. ([MENT-2460](https://jira.mariadb.org/browse/MENT-2460))

### Unexpected results

* REPLACE on a precise-versioned table returns duplicate key error (ER\_DUP\_ENTRY) ([MDEV-15990](https://jira.mariadb.org/browse/MDEV-15990))
* Wrong result when split optimization is used for grouping with order by and limit ([MDEV-31887](https://jira.mariadb.org/browse/MDEV-31887))
* Assertion \`!is\_set() || (m\_status == DA\_OK\_BULK && is\_bulk\_op())' failed after ALTER TABLE of versioned table ([MDEV-33370](https://jira.mariadb.org/browse/MDEV-33370))
* Exchange partition with virtual columns fails ([MDEV-34033](https://jira.mariadb.org/browse/MDEV-34033))
* Parameterized PS converts error to warning, causes replication problems ([MDEV-34046](https://jira.mariadb.org/browse/MDEV-34046))
* View containing JSON\_TABLE does not return JSON ([MDEV-34081](https://jira.mariadb.org/browse/MDEV-34081))
* Wrong result json\_table ([MDEV-36319](https://jira.mariadb.org/browse/MDEV-36319))
* Fix COALESCE and IFNULL functions to use - (i) argument nullness, (ii) type conversion safety of fallback values to decide nullability of result. ([MDEV-36851](https://jira.mariadb.org/browse/MDEV-36851))
* Correct return value of JSON\_VALUE which in the previous release, incorrectly converted a valid empty string return value to a NULL. This has been reverted to correct behaviour. ([MDEV-37428](https://jira.mariadb.org/browse/MDEV-37428))
* Wrong query\_ids in server\_audit plugin not reflecting reality ([MDEV-37434](https://jira.mariadb.org/browse/MDEV-37434))
* Fix server\_audit rwlock Performance Schema instrumentation ([MDEV-37555](https://jira.mariadb.org/browse/MDEV-37555))
* IS TRUE incorrectly converts outer join to inner ([MDEV-37653](https://jira.mariadb.org/browse/MDEV-37653))
* Spider: XA COMMIT ONE PHASE fails with "This xid does not exist" ([MDEV-37829](https://jira.mariadb.org/browse/MDEV-37829))
* mysqli silently trims each json\_arrayagg result to modulo 64KB ([MDEV-37835](https://jira.mariadb.org/browse/MDEV-37835))
* Wrong result with Loose Scan on QUICK\_GROUP\_MIN\_MAX\_SELECT WITH TIES ([MDEV-37901](https://jira.mariadb.org/browse/MDEV-37901))
* Assertion failure in online\_alter\_log\_row or server hang upon replicating REPAIR on mysql.gtid\_slave\_pos ([MENT-2462](https://jira.mariadb.org/browse/MENT-2462))

## Changelog <a href="#changelog" id="changelog"></a>

For the complete list of changes in this release, see the [changelog](https://mariadb.com/docs/release-notes/enterprise-server/11.4/changelog-11.4.9-6).

## Platforms <a href="#platforms" id="platforms"></a>

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 11.4.9-6 is provided for:

* AlmaLinux 8 (x86\_64, ARM64)
* AlmaLinux 9 (x86\_64, ARM64)
* AlmaLinux 10 (x86\_64, ARM64)
* Debian 11 (x86\_64, ARM64)
* Debian 12 (x86\_64, ARM64)
* Microsoft Windows (x86\_64) (MariaDB Enterprise Cluster excluded)
* Oracle Linux 8 (x86\_64, ARM64)
* Oracle Linux 9 (x86\_64, ARM64)
* Oracle Linux 10 (x86\_64, ARM64)
* Red Hat Enterprise Linux 8 (x86\_64, ARM64)
* Red Hat Enterprise Linux 9 (x86\_64, ARM64, PPC64LE)
* Red Hat Enterprise Linux 10 (x86\_64, ARM64)
* Rocky Linux 8 (x86\_64, ARM64)
* Rocky Linux 9 (x86\_64, ARM64)
* Rocky Linux 10 (x86\_64, ARM64)
* SUSE Linux Enterprise Server 15 (x86\_64, ARM64)
* Ubuntu 22.04 (x86\_64, ARM64)
* Ubuntu 24.04 (x86\_64, ARM64)
* Microsoft Windows (x86\_64) (Without MariaDB Enterprise Cluster (Galera) support)
* Red Hat UBI 8 (x86\_64, ARM64)
  * Red Hat UBI 8 is part of the Enterprise Server Docker Image. It does not support MariaDB Enterprise Cluster (Galera) or MariaDB ColumnStore.

Some components of MariaDB Enterprise Server are supported on a subset of platforms. See [MariaDB Engineering Policies](https://mariadb.com/engineering-policies) for details.

## Installation Instructions <a href="#installation-instructions" id="installation-instructions"></a>

* [Deploy MariaDB Enterprise with Repositories](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/mariadb-package-repository-setup-and-usage)
* [Deploy MariaDB Enterprise with Package Tarballs](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages/package-tarballs)
* [Deploy MariaDB Enterprise with Docker](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/automated-mariadb-deployment-and-administration/docker-and-mariadb/deploy-mariadb-enterprise-server-with-docker)

## Upgrade Instructions

* [Upgrade to MariaDB Enterprise Server 11.4](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-enterprise-server/upgrade-paths/mariadb-enterprise-server-11.4/upgrade-to-mariadb-enterprise-server-11.4)
* [Upgrade from MariaDB Community Server to MariaDB Enterprise Server 11.4](https://app.gitbook.com/s/SsmexDFPv2xG2OTyO5yV/server-management/install-and-upgrade-mariadb/installing-enterprise-server/upgrade-paths/mariadb-enterprise-server-11.4/upgrade-from-mariadb-community-server-to-mariadb-enterprise-server-11.4)

<sub>*This page is: Copyright © 2025 MariaDB. All rights reserved.*</sub>

{% @marketo/form formid="4316" formId="4316" %}
