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

MySQL Router Release Notes  /  Changes in MySQL Router 8.0.21 (2020-07-13, General Availability)

Changes in MySQL Router 8.0.21 (2020-07-13, General Availability)

Packaging Notes

  • For Windows, MSI installer packages for MySQL Router now include a check for the required Visual Studio redistributable package, and produce a message asking the user to install it if it is missing. (Bug #30541398)

Functionality Added or Changed

  • Added new log functionality:

    • [filelog]: this new section includes the optional filename option that defaults to [logger]'s filename value. This file is written to the logging_folder directory; and the value must be a file name and not include a path.

    • [logger]: added an optional filename option to define Router's log file name, and it also sets [filelog]'s default filename value. It is unset by default, while default filename behavior is Router's mysqlrouter.log.

    • [consolelog]: this new section includes the optional destination option that defaults to /dev/stderr. Available values are /dev/stdout, /dev/stderr, or /dev/null on *nix; and CON or NUL on Windows.

    (Bug #29271072, Bug #94095, WL #13838)

  • Added support for the InnoDB cluster metadata "tags" property; namely for the "_hidden" and "_disconnect_existing_sessions_when_hidden" tags.

    • _hidden: A boolean that indicates if the node should be hidden. Setting "true" makes the node hidden, while "false" or any other value considers it not hidden. Default: false.

    • _disconnect_existing_sessions_when_hidden: A boolean that indicates if the existing connections to the node should be dropped in case the node is hidden. A value of "false" means the node is "dont_disconnect_existing", meaning existing connections to hidden nodes are not disconnected. True or any other value means the opposite. Default: true.

      This setting does not affect new client connections, which are never directed to hidden instances.

    Hidden instances only affect user connections; the instance remains available to Router when performing tasks such as fetching metadata and calculating the quorum. (WL #13787)

Bugs Fixed

  • Updated mock_server MySQL Server type definitions; fixed NEWDECIMAL and added TIMESTAMP2 and JSON. (Bug #31283079, Bug #99416)

  • For testing, the full protobuf dependency was replaced by protobuf-lite. (Bug #31245124)

  • For Windows, added necessary internal functions to allow log rotation but it remains unsupported. This functionality is only available on Unix-based systems. (Bug #31212570, Bug #33708504)

  • The bootstrap process could not complete when MySQL Server had the optimizer switch derived_merge set to off; because the v2_routers view became non-insertable. Now, derived_merge is set to on for sessions that Router is handling metadata. (Bug #31170721)

  • Improved the plugin loading mechanism to not implicitly load plugins; previously the same plugin could be loaded twice. (Bug #31024867)

  • Router assumed that each new GR change notified by X Protocol notifications has a new view id, but that is not always the case; for example, for changes like switching the primary or change of the role. The view id is no longer used for notification debouncing. (Bug #31017863, Bug #98863)

  • Fixed MSVC 2019 16.6 builds by adding the missing headers. Thanks to Billy O'Neal for the patch. (Bug #31008906, Bug #98880)

  • Fixed Clang 9 warnings. (Bug #30920954)

  • With use_gr_notifications=1, Router used the old X Protocol namespace name (xplugin) when sending the PING message over the X Protocol connection that was sent to avoid the idle connection from being closed. (Bug #30850734)

  • With a high TTL and Group Replication (GR) notifications enabled, MySQL Shell operations such as addInstance() and removeInstance() would go unnoticed until the TTL expired; which would trigger GR notifications in the meantime. Now Router temporarily decreases TTL to 1s when it notices inconsistent metadata until it becomes consistent again. (Bug #30739068)

  • On Linux, Router now installs an example logrotate example script; it's located at /etc/logrotate.d/mysqlrouter. (Bug #30611485)

  • Updated HTTP server logic to function with changes made by libevent 2.1.9. (WL #10703)