With connection sharing enabled, changing the password of an active connection yielded a vague "Lost connection" error instead of indicating that reauthentication failed. (Bug #36981282)
Updated <cstring> and <iostream> header usage by adding or removing their inclusion as needed, and annotated the functions utilized from each. (Bug #36946579, Bug #36951336)
Replaced most uses of
std::enable_if<>
andstd::enable_if_t<>
with therequires
keyword introduced in C++20, to limit the visibility of methods. This improves the error messages and stack traces. (Bug #36939919)On macOS, AddressSanitizer (ASan) discovered a potential issue with connection pooling that could cause Router to unexpectedly halt. (Bug #36935988)
Improved the dependency injection mechanism (DIM) to increase performance in a multithreaded environment. DIM is no longer controlled by a single mutex. (Bug #36846616)
In some cases, the LogFilter would execute when a log message wasn't logged. (Bug #36841009)
Improved HTTP request handling to better scale for a large number of parallel connections. (Bug #36796808)
A TLS shutdown was not executed when Read-Write splitting was used and a prepared statement needed to be prepared on the Write node but the current connection was on the Read node. (Bug #36715733)
Connections in the connection pool were closed without waiting for the server to close the connection which affected the TLS session reuse cache. This affected connection sharing and Read-Write splitting as both let the connection pool close their connections. (Bug #36715372)
Greatly improved HTTP/2 compatibility for the REST API. (Bug #36697876)
With Read-Write splitting enabled and after the PRIMARY switched its role to SECONDARY, all write statements would fail with an error indicating that the MySQL server is running in super_read_only mode. Now it drops the client connection like it does without Read-Write splitting. (Bug #114594, Bug #36591958)