-
Added the
use_gr_notifications
[metadata-cache] option to enable Group Replication notifications, which is disabled by default. It supports group_replication/membership/quorum_loss, group_replication/membership/view, group_replication/status/role_change, and group_replication/status/state_change.Optionally use the new
--conf-use-gr-notifications
bootstrap command-line to enable this option in the generated configuration file. (WL #10719) -
Added a REST API that follows the OpenAPI 2.0 specification and is implemented as a plugin; load the plugin using
[rest_api]
in the configuration file. It also requires the http_server plugin. Use the optionalrequire_realm
configuration option (string) to define the authentication realm.The base-path for all REST endpoints is "api" followed by a numeric API version that is defined as the release date, such as "/api/20190715/". The system follows camelCase naming rules and errors follow RFC 7807. The system exposes a
swagger.json
file as/api/
. (WL #8965){apiVersion}
/swagger.json
Bootstrapping could misclassify a hostname as IPv6 and surround it with square brackets in the state (
state.json
) file; and this produced a "Configuration error: cluster-metadata-servers is incorrect" error. A workaround was to disable ipv6 support on the system. (Bug #29876948, Bug #95531)Starting the http_server plugin against a port that was already bound would yield a confusing error, such as "Error: bind('0.0.0.0:10100) failed: The operation completed successfully." (Bug #29823472)
Improved the connection counter logic to prevent a potential unexpected halt before completing the shutdown process. (Bug #29820725)
Requesting the metadata-cache health immediately after start up could cause an expected exit by get_destinations() if metadata_cache's cache-api was not yet initialized. (Bug #29820155)
Bootstrapping would fail on hosts that defined multiple network interfaces. (Bug #29814629)
Optimized logging mechanism; system generated log messages independent of the log level. Now log messages are only prepared if configured to do so. (Bug #29798420)
Fixed potential blocking during shutdown by adding proper libmysqlclient deinitialization where needed. This bug only affected DEBUG builds. (Bug #29635378)
harness/CMakeLists.txt
was renamed toharness/src/CMakeLists.txt
. (Bug #29629788)The loaded plugin message level was changed from level "info" to "debug". (Bug #29616101)
The bootstrap "invalid URI" error message was improved. (Bug #29609170)
HTTPS connections with ECDHE ciphers to Router's http_server component failed if built against OpenSSL 1.0.1. (Bug #29609052)
The file generated by mysqlrouter_passwd was world-readable, and is now user-readable (Bug #29589127)
For the REST API, unsupported query parameters now return the 400 HTTP status code; and remain ignored. (Bug #29556935)
Log lines above 512 characters were truncated. (Bug #29540910)
For the REST API, OPTION, TRACE, and CONNECT requests now return the application/problem+json Content-Type and 405 HTTP status code. (Bug #29539557)
The HTTP server component now supports .jpg/.jpeg image files, and file extension matches are now case-insensitive. (Bug #29508595)
Added Visual Studio 2019 support. (Bug #29454252)
An unknown [http_auth_realm] backend yielded an unclear error. (Bug #29421759)
An uncaught exception was generated if a client socket was shutdown the client peer address was retrieved. (Bug #29382585)
Misleading "Potential changes detected in cluster" warnings were added to Router's log file. Node order differences no longer cause these errors. (Bug #29264764, Bug #94060)
Router would start if
bootstrap_server_addresses
was empty or not set. Now Router fails to start in this case if cluster-metadata-servers (adynamic-config
attribute) is also empty. (Bug #28352482)The
.ini
configuration file locations are now detected and displayed in --help output. (Bug #28261802)With Debian packages, the bootstrap process could fail when used with the
--directory
option. (Bug #27034449)