MySQL Router Release Notes

4.3 Changes in MySQL Router 2.0.2 (2015-10-23, General Availability)

Functionality Added or Changed

  • Only one Fabric Cache section is allowed, when before multiple Fabric Cache sections were accepted. Specifying multiple Fabric Cache sections will now exit and display an error. (Bug #22069820)

  • A sample configuration file and init script are now added to the share/doc/ directory.

    The default configuration file (mysqlrouter.ini) location for the STANDALONE installation layout is now the current working directory. (Bug #22065149)

  • Setting bind_address is no longer required, and it defaults to 127.0.0.1. Also, if a port is not used in the definition, then bind_port is used. (Bug #22057234)

  • A new bind_port configuration option was added. It is the default port used by bind_address if bind_address does not define a port. (Bug #22057234)

  • The configuration file no longer accepts a password for the Fabric Cache plugin. Instead, MySQL Router prompts for the password at startup. (Bug #22024872, Bug #78842)

  • The wait_timeout configuration option was removed. (Bug #22010993)

  • Successful routes are now logged using the DEBUG level. Previously it was using the INFO log level. (Bug #22010923)

  • For MySQL Harness, the CMake variable "HARNESS_INSTALL_LIBRARY_DIR" was introduced to specify where libraries are installed. The default value is "lib". It can be set by projects using the Harness, such as MySQL Router. (Bug #21931849)

  • The README text was updated, the build instructions now refer to the online documentation. (Bug #21901927)

  • The [DEFAULT] section of the MySQL Router configuration file is now optional. Settings for this section include config_folder, logging_folder, plugin_folder, and runtime_folder.

    The default values are relative to the installation prefix. Appended paths are etc/ for config, run/ for runtime, and lib/mysqlrouter for plugin. Logging defaults to an empty value, so messages are sent to the console. (Bug #21900022, Bug #21935219, Bug #78557)

  • Logger levels were added: FATAL, ERROR, WARNING, DEBUG, and INFO. The default value is INFO.

    Also, adding [logger] to the configuration file is now optional. INFO is the default behavior. (Bug #21899753, Bug #78555)

Bugs Fixed

  • The MySQL Router Fabric_Cache plugin failed to function if Router was started before MySQL Fabric. In addition to this fix, the number of Fabric reconnect attempts is now displayed. (Bug #22045940)

  • Starting connection routing without an available destination server would quarantine the destination server and Router would incorrectly exit on the next connection. (Bug #22042842)

  • The commercial edition variant of the packages now report the correct license information. (Bug #22024494)

  • When the router was started without starting the destination servers, and clients were trying to connect to the bind port, memory leaks were observed. (Bug #21981890)

  • A memory leak occurred in MySQL Router with the Fabric Cache plugin when Router was started without MySQL Fabric running. (Bug #21981787)

  • The Nagle algorithm for MySQL client connections is now disabled the same way it is disable it for the server connections. (Bug #21973979, Bug #78781)

  • When the list of available managed servers in Fabric Cache was decreased, and the current position pointed to a managed server that was no longer in the list, then an unhandled exception was thrown. This problem could have occurred when promoting and demoting an HA Group in MySQL Fabric. (Bug #21972632)

  • Socket connections are now properly closed after calling shutdown(), as to reclaim resources. (Bug #21972344, Bug #78771)

  • Fixed the removal of servers from quarantine. MySQL Router now properly exits when reaching the end of the list, when all servers are in quarantine. (Bug #21962350, Bug #78742)

  • After installing MySQL Router to a non-default location (such as, using DCMAKE_INSTALL_PREFIX), setting LD_LIBRARY_PATH to the new location had no affect, thus causing plugin usage to fail. (Bug #21944649, Bug #78702)

  • Starting the router with an empty string for the group section could cause a crash. (Bug #21916963)

  • When multiple cache configurations were configured for the same fabric setup, connecting a client to a routing service that used this configuration would cause a crash. (Bug #21916830)

  • Passing allow_primary_reads to Fabric is now only allowed in read-only mode, when before it was also allowed in read-write mode. (Bug #21881850)

  • Once the group is demoted and then promoted, all new connections to the routing service fail, as further changes to the group were disregarded after reaching 0 available destinations. (Bug #21881131, Bug #21880676)

  • The connect_timeout and max_connections configuration options always used the default values, and did not use values defined in the configuration files. (Bug #21873666)

  • Fixed persistent connections with MySQL Fabric. When reconnecting to MySQL Fabric with the Fabric Cache plugin, mysql_ping() usage was corrected to allow a persistent connection with MySQL Fabric when using the MySQL-RPC protocol. (Bug #21864126)

  • The read-write mode would always check the first MySQL connection destination, even if it was reachable. It now preserves the status information in memory to skip unreachable destinations. (Bug #21847015)

  • Configuration errors now cause MySQL Router to terminate and return exit code 1, when before exit code 0 was returned.

    Previously, errors where directed to STDOUT instead of STDERR. (Bug #21771595)