Documentation Home
MySQL Router Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 178.3Kb
PDF (A4) - 178.5Kb


MySQL Router Release Notes  /  Changes in Release 8.0  /  Changes in MySQL Router 8.0.29 (2022-04-26, General Availability)

Changes in MySQL Router 8.0.29 (2022-04-26, General Availability)

Functionality Added or Changed

  • Added a new unknown_config_option configuration option that defines Router behavior when encountering an unknown configuration option, such as a typo. Behavior defaults to 'warning' if unset, and bootstrapping sets it to 'error' in the generated configuration behavior. Previously, Router ignored unknown configuration options. (Bug #32207191)

  • Added connection pooling functionality to reuse server-side connections. This adds the new max_idle_server_connections (defaults to 0 seconds; so is disabled) and idle_timeout (defaults to 5 seconds) Router configuration options for the new [connection_pool] configuration section. Set [rest_connection_pool] to enable its REST API functionality.

  • Changed the connect_timeout default value to 5 seconds. Previously it defaulted to 15 for the [DEFAULT] section and 1 for the [routing] section.

  • Extended the quarantine mechanism to the first-available and next-available static destination routing strategies, when previously it only applied to the static round-robin and dynamic metadata-cache policies. Previously first-available would check for connections but now skips unreachable (quarantined) destinations. The next-available strategy behavior did not change to preserve backwards compatibility.

    This adds a new unreachable_destination_refresh_interval configuration option that defaults to 1 (second). This determines how often each unreachable destination candidate is probed for availability.

Bugs Fixed

  • Router would unnecessarily remove and recreate existing connections when new nodes were added to a Cluster, and this would potentially block the GR notification thread. (Bug #33874978)

  • Closing an SSL connection now cancels all events on the server-side socket instead of passively waiting for it to close. (Bug #33830212)

  • The metadata upgrade process (via MySQL Shell's dba.upgradeMetadata()) did not recognize when Router was upgraded if the system still used the older metadata 1.x (metadata 2.0 was introduced in v8.0.19); and this stalled the upgrade process. Now Router sets the Router version in metadata during bootstrap for all metadata versions, and it continues to retry updating the version if it failed due to missing privileges of the Router user when before it only tried once. (Bug #33825480)

  • On Windows MSI builds, added the missing INFO_BIN and INFO_SRC files to the share/doc/mysqlrouter directory. (Bug #33822549)

    References: See also: Bug #33510726.

  • While boostrapping, the default section name keys for the metadata_cache and routing sections changed from the cluster name to "bootstrap" to help prevent potential invalid character clashes. (Bug #33673803)

  • Improved Doxygen support by removing [[maybe_used]] tags and ensuring all parameters are documented. (Bug #33596116)

  • A potential race condition occurred when the routing plugin shut down and cleaned up the sockets container when the connector tried using this sockets container afterwards. Connections not yet moved to the routing plugin container are now counted, and the routing plugin cannot shut down until these connections are handled. (Bug #33593833)

  • Split metadata_cache into metadata_cache (library) and metadata_cache_plugin (plugin). (Bug #33574698)

  • Refactored BasePluginConfig by adding transformation classes (StringOption, UintOption, DoubleOption, and MilliSecondsOption) and converted plugin configurations to get_option(). (Bug #33570004, Bug #33584470)

  • Router now uses metadata to find a PRIMARY rather than rely upon the order of nodes returned by a node list query. Before it would connect to the first node regardless, even if needing a primary and this would waste time and yield unnecessary errors if the node was not a primary. (Bug #33551163)