Percona Server for MySQL 8.0.44-35 (11-24-2025)¶
Get started with Quickstart Guide for Percona Server for MySQL.
Percona Server for MySQL 8.0.44-35 includes all the features and bug fixes available in the MySQL 8.0.44 Community Edition and enterprise-grade features developed by Percona.
Release highlights¶
MySQL 8.0.44¶
Improvements and bug fixes provided by Oracle for MySQL 8.0.44 and included in Percona Server for MySQL are the following:
-
Fixed an issue where parallel scan thread creation could fail, causing assertion failures when falling back to single-thread mode. (Bug #38325137)
-
Fixed an issue where virtual index rollback could fail on 32-bit builds of MySQL Server under certain circumstances. (Bug #38167527)
-
Fixed an issue where very large buffer pools could require excessive memory chunks per instance, potentially causing allocation failures. The allocation is now validated to ensure proper memory allocation. (Bug #37994397)
-
Fixed an issue where assertion failures could occur due to data size and bounds mismatches during DDL file operations. (Bug #37882398)
-
Fixed an issue related to modifying the internal Full-Text Search (FTS) configuration. (Bug #37792010)
-
Fixed an issue related to virtual indexes. (Bug #37602657)
-
Fixed an issue where confusing warning messages could appear when row sizes exceeded maximum allowed limits with
innodb_strict_mode=OFF, such as during table selection or column dropping operations. Error messages have been improved for clarity. (Bug #37003342, Bug #36768046, Bug #36867372)
Find the complete list of bug fixes and changes in the MySQL 8.0.44 Release Notes.
Improvements¶
- PS-8980: Percona Server for MySQL 8.0.44-35 adds the
performance_schema.account_failed_login_lock_statustable which lists the user accounts that have been temporarily locked after reaching the limit for failed login attempts.
Bug Fixes¶
InnoDB¶
-
PS-9837: A server exit occurs on a replica that uses
replica_parallel_workers> 0 andslave_preserve_commit_order=ON when many threads repeatedly delete rows and then insert new rows having the same secondary‑index values, creating duplicate index entries. Changing the workload to a singleUPDATE(instead of a delete‑followed‑by‑insert) prevents the duplicate‑key situation and stops the replica from exiting. -
PS-9838: The server’s estimate for how many rows fit in one index leaf (
guess_rec_per_key()) uses two numbers:used_keyparts(the parts actually stored in the index) anduser_defined_key_parts(the parts the user declared). If these two counts differ, the formula calculates the wrong capacity, leading to inaccurate index‑size estimates. -
PS-10283: A debug‑assertion failure (
field.field_no < dict_index_get_n_fields(index)) that occurred during recovery of InnoDB tables usingROW_FORMAT=REDUNDANT. The fix added a conditional bypass of the index‑field validation when the server was in recovery mode and the table was non‑compact (redundant), preventing the assertion from triggering and allowing the server to start and recover normally.
MyRocks¶
-
PS-9220: During slow‑query‑log rotation the server attempts to write to the base file
slow.log(which isn’t created), raises an error -errno 2 – No such file or directory, but the logs are written with numeric suffixes (for example,slow.log.000087) that obey the configured size and file‑count limits. -
PS-9452: When the server uses a thread‑pool (thread_handling = pool‑of‑threads) and the variable
thread_pool_high_prio_modeis set totransactions, every new client connection is placed in the normal‑priority queue. The queue is processed only if there is a free thread in the pool. -
PS-9680: Calling
ALTER TABLE … IMPORT TABLESPACE(or any RocksDB operation that creates a new table) from many threads at the same time can trigger the error “Invalid argument: Global seqno is required, but disabled.” Even whenrocksdb_bulk_loadis set to0, this error indicates that RocksDB’s global sequence‑number tracking is turned off while the engine still expects it, causing write‑order mismatches that may corrupt the data. -
PS-9834: The Audit Log Filter incorrectly deletes all rotated logs if the
audit_log_filter.max_sizeis set > 2 GiB. -
PS-9840: An assertion was triggered because a data dictionary table existed for table T, yet that table was not registered in RocksDB. The storage engine could not locate the corresponding physical representation, leading to the failure.
-
PS-9842: An assertion was raised because
rocksdb::MergingIterator::CurrentForward()asserted thatminHeap_.empty() || minHeap_.top()->type == HeapItem::Type::ITERATOR. The fix corrected the heap‑state handling, eliminating the SIG 6 termination and stabilized table‑check operations. -
PS-10067: This fix resolves malformed reads and improves the stability of index iteration. The update fixed
Rdb_convert_to_record_key_decoder::skip()so that it now advances both the key‑slice reader and the unpack‑information reader. By consuming the per‑field metadata (item 5) during iteration withRdb_key_field_iterator::next(), the function correctly handles index fields created viamake_unpack_unknown_varlength(). -
PS-10075: A checksum‑mismatch failure when executing queries with RocksDB enabled with default settings. The fix corrected the checksum validation logic and ensured that index scans correctly verified and updated record checksums, eliminating the “record checksum mismatch” and “corrupt” messages during table checks.
-
PS-10131: The
audit_log_rotate()could be delayed up to one second becauseFileWriterBuffering::close()waited for a flush‑worker thread that was sleeping inmysql_cond_timedwait. The fix signals the flush‑worker immediately before the wait, ensuring prompt buffer flushing and preventing rotation delays. -
PS-10210: Added enforcement for the ranges for the following MyRocks variables:
rocksdb_block_sizenow rejects sizes larger than 4 GiB,rocksdb_keep_log_file_nummust be greater than 0, androcksdb_persistent_cache_size_mbrequires a minimum of 100 MiB. Additionally, therocksdb_debug_cardinality_multiplierparameter was constrained to valid ranges, eliminating the crashes that occurred when it was set to 0. -
PS-10227: An unexpected server exit occurred when
rocksdb_table_stats_skip_system_cfwas enabled. Previously, enabling this option left the system column‑family pointer null during RocksDB recovery, causing an assertion failure inRdb_cf_manager::get_cf()and abortingmysqldwith signal 6. The fix introduced proper initialization and safety checks for the system column family, allowing the server to start normally while still skipping system‑CF statistics.
Build & packaging notes¶
Useful links¶
Install Percona Server for MySQL 8.0
Upgrade Percona Server for MySQL from 5.7 to 8.0
The Percona Server for MySQL GitHub repository
Download product binaries, packages, and tarballs at Percona Product Downloads
Contribute to the documentation
For training, contact Percona Training - Start learning now