Release Notes for MariaDB MaxScale 22.08.3


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

MariaDB MaxScale 22.08.3 was released on 2022-12-02. This release is of General Availability (GA) maturity.

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

Issues Fixed

Can result in a hang or crash

  • When using MaxScale 22.08.2, connection stalls after running some commands. (MXS-4416)

    • In MaxScale 22.08.2, the resultset tracking code does not increment the iterators correctly, so MaxScale incorrectly expects more data to arrive and queues all future queries while waiting for data that will not arrive.

  • When Schema Router (schemarouter) is used, authentication failures during shard mapping are not handled correctly. (MXS-4393)

  • When Schema Router (schemarouter) is used, errors can cause MaxScale to crash due to a race condition in the router's error handler. (MXS-4389)

  • When the LOAD DATA LOCAL INFILE statement is executed and autocommit is changed, the session can hang until timeout occurs. (MXS-4388)

  • When using maxgui, running a query in the Query Editor without selecting a schema can cause an infinite loop, preventing the same Query tab from being used again. (MXS-4365)

Can result in unexpected behavior

  • When smartrouter cancels a query, it can cancel the wrong query. (MXS-4317)

    • In previous releases, if smartrouter executed two different canonical forms of the same query on the same server, the router could cancel the wrong one using KILL QUERY, which could cause the client to receive an error with the ER_QUERY_INTERRUPTED error code:

      Query execution was interrupted
    • Starting with this release, smartrouter tracks the completion of its KILL QUERY operations and prevents new queries from being executed while a cancellation is pending.

  • If more than one COM_QUERY packet is read from the client at the same time, the query classification data of the first query is applied to all the queries. (MXS-4421)

  • When using use-after-free in the regexfilter, when a matching SQL statement is executed, the filter frees the buffer that contains the SQL before it logs the message about the match. (MXS-4418)

  • When using Xpand Monitor (xpandmon), an unknown sub-state warning is logged for "leaving" and "late, leaving" states. (MXS-4415)

    • When an Xpand node is softfailed it goes into a "leaving" sub-state. When a late Xpand node is softfailed, it goes into a "late, leaving" sub-state. In previous releases, these states were not recognized and resulted in an unknown sub-state warning. For example:

      info   : [xpandmon] 'late, leaving' is an unknown sub-state for a Xpand node.
    • Starting with this release, the xpand sub-states "late" and "late, leaving" have been added and will no longer result in an unknown sub-state warning.

  • When using a Galera cluster, having an anonymous user account on the host causes the cluster status to be incorrectly reported when using the maxctrl list server command. (MXS-4406)

  • Building MaxScale using Clang gives error: (MXS-4347)

    error: no matching constructor for initialization of maxsql::ComPacket
  • When using mariadbmon, the rebuild server command does not read gtid from the xtrabackup_binlog_info file. (MXS-4392)

    • Starting with this release, rebuild server uses gtid from xtrabackup_binlog_info-file when starting replication.

  • When an UPDATE statement references a user-defined variable, MaxScale's query classifier classifies the statement as a read statement, which can cause the statement to be routed to a replica server and can break replication. (MXS-4413)

  • When the Kafka CDC Router (kafkacdc) is used, disk utilization is high. (MXS-4404)

    • In previous releases, kafkacdc truncates the current_gtid.txt file every time the router processes a GTID event.

    • Starting with this release, kafkacdc updates the current_gtid.txt file more efficiently by keeping the file handle open and writing the GTID to the file as a null-terminated string, which allows truncation to be avoided.

  • When the fields[] and filter query parameters are both used with the REST API, all results could be improperly removed by the filter. (MXS-4397)

  • When executing a long query from the shell, the tail of the table name is interpreted as a constant number and replaced with a question mark (?). (MXS-4356)

  • When the server is destroyed and created with the persist_runtime_changes variable set to false, the debug assertion fails. This can cause some objects created at runtime to have an empty string in the filename field instead of a null JSON value. (MXS-4352)

  • When the configuration file is processed, the MaxScale section name is parsed in a case-insensitive manner, so the forms [MaxScale], [MAXSCALE], and [maxscale] are accepted. (MXS-4301)

  • When MaxScale is configured to read database grants from a file using the user_accounts_file parameter and the user_accounts_file_usage parameter is set to file_only_always, MaxScale is not aware of which databases are available. (MXS-3043)

    • In previous releases, the following error is raised with the ER_BAD_DB_ERROR error code:

      Unknown database 'DATABASE_NAME'
    • Starting with this release, when MaxScale reads a database privilege from the user accounts file, it adds the database to its list of known databases.

Interface Changes


  • A user cannot exit the Query Editor using the keyboard (keyboard trap). (MXS-4399)

  • The "Run" button on the "Results" tab has a text label instead of an icon. (MXS-4378)

  • The "Save Script" button becomes unavailable after running a query. (MXS-4369)

  • The new values in the GUI table are not updated until the browser is refreshed. (MXS-4360)

  • If the authorization token has expired and the user is still on the Query Editor page, the Query Editor does not redirect the user to the login page. (MXS-4358)


In alignment to the MariaDB Corporation Engineering Policy, MariaDB MaxScale 22.08.3 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)