|
| 1 | +# Percona Server for MySQL 8.4.10-10 (2026-06-30) |
| 2 | + |
| 3 | +!!! note "" |
| 4 | + |
| 5 | + Percona Server for MySQL 8.4.9-9 was not released; 8.4.10-10 is the next build in this series. This release includes enhancements and bug fixes from MySQL 8.4.9 and MySQL 8.4.10. |
| 6 | + |
| 7 | +Get started with [Quickstart Guide for Percona Server for MySQL]. |
| 8 | + |
| 9 | +[Percona Server for MySQL 8.4.10-10 :octicons-link-external-16:](https://www.percona.com/software/mysql-database/percona-server) includes all the features and bug fixes available in the MySQL 8.4.10 Community Edition in addition to enterprise-grade features developed by Percona. |
| 10 | + |
| 11 | +## Release highlights |
| 12 | + |
| 13 | +### MySQL 8.4.10 |
| 14 | + |
| 15 | +Improvements and bug fixes introduced by Oracle for MySQL 8.4.10 and included in Percona Server for MySQL are the following: |
| 16 | + |
| 17 | +* Connection attribute parsing could read a length-encoded size field before verifying that the complete field was present in the packet, leading to an out-of-bounds read. A size check is now performed before reading the field. (Bug #39116965) |
| 18 | + |
| 19 | +* A regression in row size estimation for `ROW_FORMAT=COMPRESSED` tables could cause `CREATE TABLE` to fail with `Row size too large` for tables that were accepted in earlier releases. (Bug #39129182, Bug #120323) |
| 20 | + |
| 21 | +* Under certain circumstances, when calculating the maximum possible index record size, an assertion failure could occur. (Bug #85060, Bug #25579578) |
| 22 | + |
| 23 | +Find the complete list of bug fixes and changes in the [MySQL 8.4.10 release notes :octicons-link-external-16:](https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-10.html). |
| 24 | + |
| 25 | +## Security updates |
| 26 | + |
| 27 | +This release addresses the following security vulnerabilities: |
| 28 | + |
| 29 | +* [CVE-2026-46850](https://www.cve.org/CVERecord?id=CVE-2026-46850): A vulnerability in MySQL Shell (Shell for VS Code) allows a low-privileged attacker with network access via HTTP to compromise MySQL Shell, with potential scope change impact on additional products (CVSS 3.1 Base Score 9.9). |
| 30 | + |
| 31 | +* [CVE-2026-46860](https://www.cve.org/CVERecord?id=CVE-2026-46860): A vulnerability in MySQL Router allows an unauthenticated attacker with network access via HTTP to compromise MySQL Router (CVSS 3.1 Base Score 9.8). |
| 32 | + |
| 33 | +* [CVE-2026-46861](https://www.cve.org/CVERecord?id=CVE-2026-46861): A vulnerability in MySQL NDB Cluster (NDB Operator) allows a low-privileged attacker with network access via HTTP to access or modify critical data, with potential scope change impact (CVSS 3.1 Base Score 9.6). |
| 34 | + |
| 35 | +* [CVE-2026-46862](https://www.cve.org/CVERecord?id=CVE-2026-46862): A vulnerability in MySQL Router allows an unauthenticated attacker with network access via TLS to cause a hang or repeatable unexpected exit of MySQL Router (CVSS 3.1 Base Score 7.5). |
| 36 | + |
| 37 | +* [CVE-2026-46863](https://www.cve.org/CVERecord?id=CVE-2026-46863): A vulnerability in MySQL Server connection handling allows an unauthenticated attacker with network access via multiple protocols to cause a hang or repeatable unexpected exit of the server (CVSS 3.1 Base Score 7.5). |
| 38 | + |
| 39 | +* [CVE-2026-46869](https://www.cve.org/CVERecord?id=CVE-2026-46869): A vulnerability in MySQL Shell (Dump and Load) allows an unauthenticated attacker with network access to access critical data when user interaction is required (CVSS 3.1 Base Score 6.5). |
| 40 | + |
| 41 | +* [CVE-2026-46870](https://www.cve.org/CVERecord?id=CVE-2026-46870): A vulnerability in MySQL Shell (Shell for VS Code) allows a low-privileged attacker with network access to compromise MySQL Shell, with potential scope change impact (CVSS 3.1 Base Score 8.5). |
| 42 | + |
| 43 | +* [CVE-2026-46871](https://www.cve.org/CVERecord?id=CVE-2026-46871): A vulnerability in MySQL Shell (Shell for VS Code) allows a low-privileged attacker with network access via multiple protocols to access critical data (CVSS 3.1 Base Score 6.5). |
| 44 | + |
| 45 | +## New features |
| 46 | + |
| 47 | +* [PS-10070](https://perconadev.atlassian.net/browse/PS-10070): Integrated the new Key Management Interoperability Protocol (KMIP) library into the key management component. |
| 48 | + |
| 49 | +* [PS-10083](https://perconadev.atlassian.net/browse/PS-10083): Enhances Thread Pool statistics by adding new status variables for queue monitoring and wait time analysis. The new metrics report the number of requests waiting in normal and high-priority queues, the number of requests not yet entered into a queue, and aggregate queue wait time statistics, including average, minimum, maximum, and standard deviation wait times. These additions provide greater visibility into thread pool workload and queueing behavior. |
| 50 | + |
| 51 | +* [PS-10989](https://perconadev.atlassian.net/browse/PS-10989): Adds JSONL (JSON Lines) output format for Audit Log Filter. |
| 52 | + |
| 53 | +## Improvements |
| 54 | + |
| 55 | +* [PS-8867](https://perconadev.atlassian.net/browse/PS-8867): Increases the verbosity of the data dictionary upgrade process, making it easier to diagnose issues that occur during upgrade. |
| 56 | + |
| 57 | +* [PS-9774](https://perconadev.atlassian.net/browse/PS-9774): The Audit Log Filter `table_access` class and `read` and `insert` subclasses now log statements in the audit log. |
| 58 | + |
| 59 | +* [PS-10312](https://perconadev.atlassian.net/browse/PS-10312): The audit log buffer is now flushed on server shutdown when the `ASYNCHRONOUS` logging strategy is in use, preventing the loss of buffered events. |
| 60 | + |
| 61 | +* [PS-10331](https://perconadev.atlassian.net/browse/PS-10331): Reduces memory pressure in the Audit Log Filter component caused by VFS buffering. |
| 62 | + |
| 63 | +* [PS-10339](https://perconadev.atlassian.net/browse/PS-10339): Resolves an inconsistency in `audit_log_filter.format=NEW` between the 8.0 plugin and the 8.4 component. |
| 64 | + |
| 65 | +* [PS-11161](https://perconadev.atlassian.net/browse/PS-11161): Optimizes performance for `mem_root_deque`. |
| 66 | + |
| 67 | +## Bug Fixes |
| 68 | + |
| 69 | +* [PS-8670](https://perconadev.atlassian.net/browse/PS-8670): InnoDB could exit unexpectedly on startup while resuming an interrupted `ALTER TABLESPACE` encryption operation because progress was persisted before affected pages were flushed to disk in the target encryption state. |
| 70 | + |
| 71 | +* [PS-9773](https://perconadev.atlassian.net/browse/PS-9773): The Audit Log Filter `audit_log_read()` function always showed `"null"` instead of the bookmarked and current information. |
| 72 | + |
| 73 | +* [PS-9791](https://perconadev.atlassian.net/browse/PS-9791): The `audit_log_filter` component generated audit records that did not include complete user, host, and query information in a single event, making the logs difficult to analyze and process. |
| 74 | + |
| 75 | +* [PS-10228](https://perconadev.atlassian.net/browse/PS-10228): An audit log filter defined with no value did not log any events. |
| 76 | + |
| 77 | +* [PS-10338](https://perconadev.atlassian.net/browse/PS-10338): `audit_log_filter_set_filter()` returned `OK` for filters that referenced unknown field names instead of reporting the error. |
| 78 | + |
| 79 | +* [PS-10348](https://perconadev.atlassian.net/browse/PS-10348): The Audit Log Filter did not support filtering by integer fields. |
| 80 | + |
| 81 | +* [PS-10351](https://perconadev.atlassian.net/browse/PS-10351): Reduced the number of events emitted by the Audit Log Filter to improve performance. |
| 82 | + |
| 83 | +* [PS-10378](https://perconadev.atlassian.net/browse/PS-10378): With the MeCab plugin, a boolean-mode full-text query that used `LIMIT` still computed ranking scores for all matches, preventing the limit-based optimization from being applied. |
| 84 | + |
| 85 | +* [PS-10435](https://perconadev.atlassian.net/browse/PS-10435): The `general_query.str` event field in audit log filters could not be replaced. |
| 86 | + |
| 87 | +* [PS-10448](https://perconadev.atlassian.net/browse/PS-10448): A prepared `INSERT` statement failed to write rows across partitions. |
| 88 | + |
| 89 | +* [PS-10481](https://perconadev.atlassian.net/browse/PS-10481): Fixed the issue where the range optimizer could fall back to a full table scan instead of using an index range scan for IN() predicates on non-binary UTF-8 collations when oversized values were present. This behavior could negatively impact query performance. The optimizer now correctly handles oversized values and continues to use index range scans when appropriate. |
| 90 | + |
| 91 | +* [PS-10589](https://perconadev.atlassian.net/browse/PS-10589): Added support for building Percona Server with GCC 15, Clang 21, and Clang 22. Fixed compilation issues identified by newer Clang compiler versions. |
| 92 | + |
| 93 | +* [PS-10593](https://perconadev.atlassian.net/browse/PS-10593): The audit log plugin could exit unexpectedly with a segmentation fault when configured with the `PERFORMANCE` logging strategy and audit buffering enabled. |
| 94 | + |
| 95 | +* [PS-10853](https://perconadev.atlassian.net/browse/PS-10853): The `audit_log_filter` plugin exited unexpectedly because throwing calls were made from filesystem functions declared `noexcept`. |
| 96 | + |
| 97 | +* [PS-10872](https://perconadev.atlassian.net/browse/PS-10872): Corrected event subclass naming in the Audit Log Filter and aligned its JSON output with the upstream format. |
| 98 | + |
| 99 | +* [PS-10873](https://perconadev.atlassian.net/browse/PS-10873): The legacy audit log MTR test `audit_log_charset` failed in Percona Server for MySQL 8.0. |
| 100 | + |
| 101 | +* [PS-10951](https://perconadev.atlassian.net/browse/PS-10951): `audit_log_filter_set_user()` incorrectly updated active sessions instead of only new connections. |
| 102 | + |
| 103 | +* [PS-10987](https://perconadev.atlassian.net/browse/PS-10987): Improved Audit Log Filter message and connection events by suppressing nested general/status records in `audit_log_filter.event_mode=REDUCED`. |
| 104 | + |
| 105 | +* [PS-11014](https://perconadev.atlassian.net/browse/PS-11014): Audit Log Filter replace-field rules returned `Parse 'function' arguments list must be an array` when `query_digest()` was specified as a plain JSON string. |
| 106 | + |
| 107 | +* [PS-11073](https://perconadev.atlassian.net/browse/PS-11073): Tables with large rows that were originally created on earlier MySQL versions could not be created on MySQL 8.4.9. |
| 108 | + |
| 109 | +* [PS-11241](https://perconadev.atlassian.net/browse/PS-11241): The debug `make_page_dirty` command logged generic byte updates for compressed index pages, violating redo parser invariants during crash recovery. |
| 110 | + |
| 111 | +* [PS-11242](https://perconadev.atlassian.net/browse/PS-11242): Preallocated transaction IDs used by clone consistent snapshot could break the descending order of `rw_trx_list` and trigger a debug assertion during commit. |
| 112 | + |
| 113 | +* [PS-11243](https://perconadev.atlassian.net/browse/PS-11243): Crash recovery could fail while replaying an unfinished tablespace encryption operation when Global Transaction Identifier (GTID) mode and binary logging were enabled. |
| 114 | + |
| 115 | +## Builds and packaging |
| 116 | + |
| 117 | +* Percona Server for MySQL releases include a mixture of PGO and non-PGO builds. Where Profile-Guided Optimization (PGO) is enabled, the compiler uses runtime profiling data from representative workloads to guide optimization, which can improve throughput and reduce latency compared with non-PGO builds. |
| 118 | + |
| 119 | +* See [Profile-Guided Optimization (PGO) and non-PGO builds](../pgo.md) for benefits, considerations, and which build you receive for your platform. |
| 120 | + |
| 121 | +## Additional resources |
| 122 | + |
| 123 | +* Install [Percona Server for MySQL 8.4] |
| 124 | + |
| 125 | +* The [Percona Server for MySQL GitHub repository :octicons-link-external-16:](https://github.com/percona/percona-server) |
| 126 | + |
| 127 | +* Download product binaries, packages, and tarballs at [Percona Software Downloads :octicons-link-external-16:](https://www.percona.com/downloads) |
| 128 | + |
| 129 | +* [Contribute to the documentation :octicons-link-external-16:](https://github.com/percona/psmysql-docs/blob/8.4/contributing.md) |
| 130 | + |
| 131 | +* For [training :octicons-link-external-16:](https://www.percona.com/training), contact [Percona Training - Start learning now :octicons-link-external-16:](https://learn.percona.com/contact-me) |
| 132 | + |
| 133 | +[Quickstart Guide for Percona Server for MySQL]: ../quickstart-overview.md |
| 134 | + |
| 135 | +[Percona Server for MySQL 8.4]: ../installation.md |
0 commit comments