Release Notes for MariaDB MaxScale 22.08.7

Overview

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

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

This document describes the changes in MaxScale 22.08.7 when compared to MaxScale 22.08.6.

Notable Changes

  • The --load-all option has been added to provide a way to show details about all supported MaxScale modules via REST API and/or MaxCtrl (MXS-4541)

    • Starting with this release, the option --load-all can be used with the list modules command to show all supported MaxScale modules. When used without the load-all option, the list modules command shows only the modules that are configured.

      maxctrl list modules --load-all
      

Issues Fixed

Can result in a hang or crash

  • The Cache Filter (cache) hangs if a statement is split across multiple packets. (MXS-4659)

    • In previous releases, if a statement is split across multiple packets, the cache filter will forward the first packet and wait for a server response before sending the following ones, thus causing the session to hang.

    • Starting with this release, if a protocol command is split across multiple packets, the subsequent packets are sent forward without waiting for a response.

  • Setting session_track_trx_state=true when transaction_replay=true and optimistic_trx=true could result in excessive memory consumption and the process being killed by the OOM (out-of-memory) killer. (MXS-4656)

    • Starting with this release, when session_track_trx_state is enabled, transaction_replay and optimistic_trx will be disabled.

  • After a reboot, the Binlog Router (binlogrouter) gets stuck and writes the following error message to the MaxScale log: (MXS-4658)

    error : (SERVICE_NAME); Error received during replication from 'PRIMARY_HOST:PRIMARY_PORT': Could not open /var/lib/maxscale/binlogs//mariadb-bin.00000N for STOP_EVENT addition
    
  • With Read/Write Split Router (readwritesplit), when worker threads are rebalanced, memory leaks and crashes can occur. (MXS-4627)

Can result in unexpected behavior

  • When unsuccessfully starting a listener, a bad configuration could be persisted on disk. The error message generated by the unsuccessful start is misleading and incorrectly logged in the MaxScale log instead of being captured and sent to the REST API client. (MXS-4665)

    • Starting with this release, the following message is sent to the REST API client:

      Listener 'NAME' was created but failed to start it.
      
  • REST API 404 errors do not provide enough information about the cause of a problem. (MXS-4657)

    • Added a clarification to the MaxCtrl error message whenever an HTTP 404 response is given. Since the endpoints themselves should always be correct, the only thing that can go wrong is the object name or type.

    • The new error message is:

      Check that the object exists and that it is of the correct type.
      
  • SSL setup between MaxScale and MariaDB Xpand is not working properly because the SSL parameters specified on the bootstrap server are not copied to the dynamic servers. (MXS-4683)

  • causal_reads=local is serialized as causal_reads=true due to the string and JSON conversion of the enumeration values preferring the legacy values. The enumeration serialization selects the first matching value from the list. (MXS-4666)

    • In previous releases, the legacy values are listed first, so the enumeration serialization prefers the legacy values.

    • Starting with this release, the new values are listed first, so the enumeration serialization prefers the new values.

  • With Xpand Monitor (xpandmon), diagnostic output duplicates the configuration information already returned by show monitor. (MXS-4664)

  • With the Query Log All (QLA) Filter (qlafilter), log event notifications are sometimes lost. (MXS-4645)

  • MaxGUI can only create listeners with MariaDBProtocol. (MXS-4643)

  • With the Binlog Router (binlogrouter), deleting log files breaks the file purge expiration. (MXS-4631)

    • Starting with this release, the binlog router index file is "for human information only". When the binlog router needs details about log files, it no longer reads the index file. Instead, the binlog router rereads log file names and update times from disk, and then recreates the index file.

  • With the MaxScale REST API, the connection in Query Editor is closed after one hour of being idle. (MXS-4628)

  • With the MaxScale REST API, session idle times are calculated incorrectly. (MXS-4680)

    • In previous releases, the REST API calculated the session idle time by checking the amount of time since the last network read.

    • Starting with this release, the REST API calculates the session idle time by checking the amount of time since the session became logically idle. Consequently, if a session executes a query that takes a long time to complete, the session idle time value will remain at zero until the query is fully complete.

  • With readconnroute, when worker threads are rebalanced, statistics can be incorrect. (MXS-4627)

  • When SHOW SLAVE STATUS is executed with Binlog Router (binlogrouter), the output is not consistent with the output shown when executed with MariaDB Server. (MXS-4613)

    • In previous releases, the output showed the MaxScale node's latest local log file and position in the Master_Log_File and Read_Master_Log_Pos columns, and the output showed empty strings in the Relay_Log_File and Relay_Log_Pos columns.

    • Starting with this release, the output shows the latest log file and position replicated from the primary server in the Master_Log_File and Read_Master_Log_Pos columns, and the output shows the MaxScale node's latest local log file and position in the Relay_Log_File and Relay_Log_Pos columns.

Platforms

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

  • CentOS 7 (x86_64)

  • 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 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)