Release Notes for MariaDB MaxScale 22.08.4

Overview

MariaDB MaxScale is an advanced database proxy and query router. MaxScale is a component of MariaDB database products.

MariaDB MaxScale 22.08.4 was released on 2023-01-19. This release is of General Availability (GA) maturity.

This document describes the changes in MaxScale 22.08.4 when compared to MaxScale 22.08.3.

Issues Fixed

Can result in a hang or crash

  • When a worker's sessions are rebalanced, MaxScale can crash due to a race condition. (MXS-4423)

  • With the Smart Router (smartrouter), if a session is closed while waiting on a server reply, MaxScale leaks memory, which can lead to an out-of-memory (OOM) condition. (MXS-4476)

  • With a service-to-service configuration where one service uses another service as its target, MaxScale can crash due to a segmentation fault if a query is replayed right before the connection is closed. (MXS-4460)

  • When the maxctrl reload tls sub-command is executed, MaxScale leaks memory, which can lead to an out-of-memory (OOM) condition. (MXS-4427)

  • After upgrading to MaxScale 22.08, MaxScale uses more memory, which can lead to an out-of-memory (OOM) condition. (MXS-4451)

    • Starting with this release, MaxScale has decreased the default values for the writeq_high_water and writeq_low_water parameters, so that MaxScale uses less memory by default.

  • When the MaxScale REST API is enabled, if the admin_ssl_cert parameter is configured to use a PEM file that contains a chain of certificates instead of a single certificate, MaxScale crashes when the first REST API request is made. (MXS-4442)

Can result in unexpected behavior

  • When a MaxScale listener performs a TLS handshake with a client, MaxScale does not provide the full certificate chain in the server hello message. (MXS-4450)

    • In previous releases, MaxScale only provides the MaxScale certificate in the server hello message.

    • Starting with this release, MaxScale provides the full certificate chain in the server hello message.

  • When MaxScale is executing a query that takes longer than wait_timeout seconds to complete, MaxScale can sometimes consider the client to be idle and can terminate the client connection. (MXS-4440)

    • In previous releases, the following log messages could appear in the MaxScale log:

      info   : (10) [readwritesplit] (SERVICE_NAME); Master 'SERVER_NAME' failed: #HY000: Lost connection to backend server: network error (SERVER_NAME: 104, Connection reset by peer)
      error  : (10) [readwritesplit] (SERVICE_NAME); Lost connection to the master server, closing session. Lost connection to master server while connection was idle. Connection has been idle for 120 seconds. Error caused by: #HY000: Lost connection to backend server: network error (SERVER_NAME: 104, Connection reset by peer). Last close reason: <none>. Last error:
      
  • With the Binlog Router (binlogrouter), GTID events can be written to the binary log too early . (MXS-4197)

  • With the Binlog Router (binlogrouter), the rpl_state file is not updated in an atomic manner. (MXS-3972)

  • With Schema Router (schemarouter), when a table exists on more than one node and one of the nodes with the table becomes unavailable, MaxScale can route queries to the unavailable node. (MXS-4471)

    • In previous releases, if a table exists on more than one node, MaxScale routes queries to the first node with the table in its set, even if that node is unavailable.

    • Starting with this release, if a table exists on more than one node, MaxScale checks that a node is available before routing queries to it.

  • With Schema Router (schemarouter), when the USE statement or the COM_INIT_DB command are used to select a database and the database is located on multiple shards, the database is only selected on a single shard, and the selected database on the remaining shards is left unmodified. (MXS-4470)

  • With Schema Router (schemarouter), transaction control statements (such as BEGIN and COMMIT) can be routed to the wrong nodes when a default database is not selected. (MXS-4467)

  • With Schema Router (schemarouter), session commands can be routed to nodes that have no databases mapped for the user. (MXS-4454)

  • With Schema Router (schemarouter), a query can be routed to a failed connection. (MXS-4453)

  • With the Query Log All (QLA) Filter (qlafilter), when maxctrl rotate logs is executed and the user parameter is defined for the filter, the logs are reopened for any sessions that do not match the user, which causes errors to be logged for each executed statement. (MXS-4435)

  • When SET STATEMENT is used to set a variable's value for the lifetime of a statement, MaxScale's internal query classifier would classify the statement to be routed to all nodes instead of only to the node executing the statement. (MXS-4434)

Interface Changes

Changes to Defaults

Platforms

In alignment to the MariaDB Corporation Engineering Policy, MariaDB MaxScale 22.08.4 is provided for:

  • CentOS 7 (x86_64)

  • Debian 9 (x86_64, ARM64)

  • Debian 10 (x86_64, ARM64)

  • Debian 11 (x86_64, ARM64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)