- 
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-notificationsbootstrap 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_realmconfiguration 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.jsonfile 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.txtwas renamed to- harness/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_addresseswas empty or not set. Now Router fails to start in this case if cluster-metadata-servers (a- dynamic-configattribute) is also empty. (Bug #28352482)
- The - .iniconfiguration file locations are now detected and displayed in --help output. (Bug #28261802)
- With Debian packages, the bootstrap process could fail when used with the - --directoryoption. (Bug #27034449)