MySQL Router Release Notes  /  Changes in MySQL Router 9.1.0 (2024-10-15, Innovation Release)

Changes in MySQL Router 9.1.0 (2024-10-15, Innovation Release)

Functionality Added or Changed

  • Added OpenID Connect support, which is available as of MySQL Enterprise Edition Server 9.1.0. (WL #16466)

Bugs Fixed

  • 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<> and std::enable_if_t<> with the requires 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)

  • Bootstrapping against a MySQL account that used the mysql_native_password authentication plugin with MySQL Router 9.0 from a standalone (zip or tar.gz) package would exit with an error indicating that the plugin was not available. (Bug #36915646)

  • 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 handing performance by using the ICU regex implementation instead of std::regex. (Bug #36797250)

  • Improved HTTP request handling to better scale for a large number of parallel connections. (Bug #36796808)

  • Building with the MSVC "Build Solution" target now excludes building mysqlxmessages_shared, which was already defined as EXCLUDE_FROM_ALL. (Bug #36719728)

  • 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)