Release Notes for MariaDB Enterprise Server 10.3.35-16

Overview

MariaDB Enterprise Server 10.3.35-16 is a maintenance release of MariaDB Enterprise Server 10.3. This release includes a variety of fixes.

MariaDB Enterprise Server 10.3.35-16 was released on 2022-06-13.

Backported Features

MariaDB Enterprise Server enables a predictable development and operations experience through an enterprise lifecycle. These new features have been backported after reaching maturity in MariaDB Community Server:

Notable Changes

  • Galera updated to 25.3.37

  • Spider storage engine refuses attempts to create a temporary table since the engine cannot itself store data and cannot create temporary tables on a remote server. (MDEV-28225)

  • Status variables Innodb_encryption_key_rotation_list_length, Innodb_num_index_pages_written and Innodb_num_non_index_pages_written were unused and have been removed. (MDEV-28541, MDEV-28537)

  • Starting with this release, when wsrep_sst_method is set to rsync or mariabackup, the sst_max_binlogs SST option can be specified in the [sst] option group in configuration files. This parameter specifies the number of binary log files to be sent to the joiner node during SST. (MDEV-27524)

    • The default value is 0:

      • If a binlog exists, it will be transferred.

      • If a binlog does not exist, no binlog will be transferred.

Issues Fixed

Can result in data loss

  • When the parser converts a string from the binary character set to a multi-byte character set (such as utf32), an invalid string could be produced. (MDEV-23210)

  • When rows are inserted into an intermediate temporary table via the LOAD DATA INFILE statement ,and then the rows are copied from the temporary table to a persistent table, the rows are not written to binary log if binlog_format=MIXED is set, which prevents the operation from properly replicating to replica servers. (MDEV-24667)

  • When innodb_disallow_writes=ON is set, mysqladmin shutdown can hang. (MDEV-25975)

  • When a replica server's I/O thread receives an incomplete event group from the primary server, the replica server continues writing events to the relay log and does not raise an error. (MDEV-27697)

  • Semisync-replica server recovery fails to rollback a prepared transaction. (MENT-1534)

Can result in a hang or crash

  • With MariaDB Enterprise Cluster, powered by Galera, when wsrep_sst_method is set to rsync or mariabackup, the donor node does not transfer the correct binary logs to the joiner node with some configurations. (MDEV-27524)

  • When a window function is used in the global ORDER BY clause of a SELECT statement with a UNION, the statement should be rejected, but the server executes the statement and crashes with a segmentation fault. (MDEV-15208)

  • When a stored procedure queries a view and uses a for loop, the server can crash with a segmentation fault when the stored procedure is called twice in the same session. (MDEV-26009)

  • Server can crash when a procedure that queries a view is called twice. (MDEV-26009)

  • When innochecksum is executed on an encrypted tablespace file using the --page-type-summary or -S option, innochecksum crashes with a segmentation fault unless the --page-type-dump or -D option is also specified. (MDEV-27835)

  • When an invalid CREATE SEQUENCE ... RESTART statement is used inside of a CREATE PROCEDURE or CREATE FUNCTION statement, the server can crash while parsing the statement. (MDEV-28220)

  • Possible crash on parsing a syntax incorrect statement CREATE SEQUENCE .. RESTART inside of a `CREATE PROCEDURE or CREATE FUNCTION (MDEV-28220)

  • When a table contains a virtual generated column that is defined using the IF() and DATE_FORMAT() functions, inserting a row into the table can cause the server to crash with a segmentation fault. (MDEV-24176)

  • Server crash after INSERT in a table with virtual column generated using date_format() and if() (MDEV-24176)

  • When a non-updateable view is defined with ALGORITHM=TEMPTABLE, selecting data from the view can cause the server to crash with a segmentation fault. (MDEV-21028)

  • When a UNION of decimal types is performed in an ORDER BY clause, the server can crash with a segmentation fault. (MDEV-25994)

  • When a stored procedure executes a query that results in a mergeable derived table, the server can crash with a segmentation fault when the stored procedure is called twice in the same session. (MDEV-27212)

    • Querying views can result in mergeable derived tables.

    • Using subqueries with outer references can result mergeable derived tables.

  • When ANALYZE FORMAT=JSON is executed with a query that contains a subquery, the server can crash. (MDEV-28268)

  • When a query using a window function with an OVER (PARTITION BY ..) or OVER (ORDER BY ..) clause is executed, the server can crash with a segmentation fault. (MDEV-19398)

    • If the query also uses WITH ROLLUP, this crash is more likely.

    • If the query's OVER (PARTITION BY ..) or OVER (ORDER BY ..) clause uses an aggregate function, this crash is more likely.

  • When a query contains an outer join expression and a non-correlated subquery that the optimizer determines is low cost, executing the query can cause the server to crash if the optimizer also determines that the inner join expression can be eliminated. (MDEV-28437)

  • With MariaDB Enterprise Cluster, a joiner node's binary logs could be deleted during an Incremental State Transfer (IST), which causes the node to fail to start, because it can not read the binary logs. (MDEV-28583)

    • This issue is confirmed to happen with wsrep_sst_method set to rsync, but it might also occur with other SST/IST methods.

  • ALTER TABLE on a large InnoDB table can hang. (MDEV-28415)

Can result in unexpected behavior

  • When OPTIMIZE TABLE is executed on a sequence, the server raises an ER_BINLOG_UNSAFE_STATEMENT warning, even if binlog_format is set to ROW or MIXED. (MDEV-24617)

    • The warning can appear in the MariaDB Error Log as the following:

      [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave Statement: OPTIMIZE TABLE SEQUENCE_NAME
      
  • When an UPDATE or DELETE statement uses an OR clause, the server raises an ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE error. (MDEV-18304)

    • The error can appear on the client as the following:

      You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
      
  • When an UPDATE statement uses a subquery inside an IN() clause, the optimizer could incorrectly choose to perform a full table scan (with type: ALL) when a range scan (with type: range) would be more efficient. (MDEV-22377)

  • When a table contains multiple ENUM columns with identical values, the values could become corrupt if multi-byte character sets are used. (MDEV-28078)

  • When DECIMAL columns are read from information_schema.PROCESSLIST, the server could incorrectly raise an ER_BAD_DATA warning. (MDEV-28131)

    • The warning can appear on the client as the following after executing SHOW WARNINGS:

      Encountered illegal value '' when converting to DECIMAL
      
  • With sql_mode=ORACLE, the parser allows functions to be called using PACKAGE_NAME.FUNCTION_NAME(), but the parser raises a ER_PARSE_ERROR error if the function is called using DATABASE_NAME.PACKAGE_NAME.FUNCTION_NAME(). (MDEV-28166)

  • When a view is used to update multiple rows of a temporal table in a single UPDATE statement, the server incorrectly raises a ER_WARN_VIEW_WITHOUT_KEY warning. (MDEV-22973)

    • The warning can appear on the client as the following after executing SHOW WARNINGS:

      View being updated does not have complete key of underlying table in it
      
  • When using mariadb-binlog with --raw and --stop-never, events from the primary server's currently active log file are not written to their respective log file specified by --result-file. (MDEV-14608)

  • When a prepared statement is used to execute EXPLAIN, a different query plan can be returned on the second execution. (MDEV-19631)

  • When slave_compressed_protocol is enabled with semi-synchronous replication, the numbering on packet headers can become out of sync between the primary and replica servers, but the inconsistency does not have any negative impact with release builds of MariaDB Enterprise Server. (MDEV-25580)

  • The server and MariaDB Enterprise Backup can raise unnecessary warnings about tablespace IDs in some scenarios. (MDEV-27343)

    • The warning can appear as the following:

      InnoDB: Allocated tablespace ID TABLESPACE_ID for DATABASE_NAME/TABLE_NAME, old maximum was 0
      
    • This warning can be written to standard output (stdout) when preparing a backup with MariaDB Enterprise Backup.

    • This warning can be written to the MariaDB Error Log when InnoDB performs crash recovery at startup.

  • With MariaDB Enterprise Cluster, the joiner node fails to complete an SST when innodb_log_group_home_dir specifies a directory different than datadir. (MDEV-27740)

  • When a non-partitioned table using the DATA DIRECTORY clause is converted to a partitioned table, the DATA DIRECTORY clause is silently ignored, and the partitioned table is moved to the default directory. (MDEV-27065)

  • Starting with this release, the server will raise the WARN_OPTION_IGNORED warning.

  • When a table contains an invisible column, mariadb-dump does not produce the correct CREATE TABLE statement in the backup file. (MDEV-28253)

  • When a Spider table is queried using IF(COUNT() ..), the server can raise an ER_BAD_FIELD_ERROR error. (MDEV-25116)

  • With MariaDB Enterprise Cluster, State Snapshot Transfers (SSTs) can fail on the donor node when binary logs are enabled. (MDEV-26201)

  • With MariaDB Enterprise Cluster, when wsrep_node_address contains an IPv6 address and wsrep_sst_receive_address is set to the default value of AUTO, State Snapshot Transfers (SST) can fail. (MDEV-26171)

  • With temporal tables, replication can break if a system versioned table has been created on the replica via mariadb-dump, if the original table was altered before. (MDEV-28254)

  • mariabackup does not detect multi-source replication primary. (MDEV-21037)

  • Master_SSL_Crl shows Master_SSL_CA value in SHOW SLAVE STATUS output. (MDEV-28428)

  • MariaDB Audit plugin produces corrupted log entries for CONNECT events. (MENT-1438)

  • mariadb-dump does not create a dump where the sql_mode is set correctly for SQL/PL packages. (MDEV-27816)

  • Missing binlog data for INSERT .. ON DUPLICATE KEY UPDATE (MDEV-28310)

  • mariabackup prepare fails for incremental backups if a new schema is created after full backup. (MDEV-28446)

  • Optimizer uses all partitions during an UPDATE and ignores partitioning filters. (MDEV-28246)

  • When INSERT .. ON DUPLICATE KEY UPDATE is executed and binlog_format is set to MIXED, the server raises an ER_BINLOG_UNSAFE_STATEMENT warning even though the statement is written to the binary log in row-based format. (MDEV-21810)

    • The warning can appear in the MariaDB Error Log as the following:

      [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE  on a table with more than one UNIQUE KEY is unsafe Statement: INSERT INTO TABLE_NAME VALUES (..) ON DUPLICATE KEY UPDATE KEY_NAME = KEY_VALUE
      
  • When INSERT .. ON DUPLICATE KEY UPDATE is executed and binlog_row_image is set to FULL, the server does not write unchanged columns to the binary log. (MDEV-21810)

  • Crash recovery fails if the configured server ID does not match the server ID in the crashed data directory. (MENT-1535)

Interface Changes

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 10.3.35-16 is provided for:

  • CentOS 7 (x86_64)

  • Debian 9 (x86_64, ARM64)

  • Debian 10 (x86_64, ARM64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 12 (x86_64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 18.04 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see "MariaDB Corporation Engineering Policies".

Note

This is the final release for Debian 9.