MariaDB 10.4.31 Release Notes

Download Release Notes Changelog Overview of 10.4

Alternate download from

Release date: 14 Aug 2023

MariaDB 10.4 is a previous stable series of MariaDB, maintained until June 2024. It is an evolution of MariaDB 10.3 with several entirely new features not found anywhere else and with backported and reimplemented features from MySQL.

MariaDB 10.4.31 is a Stable (GA) release.

For an overview of MariaDB 10.4 see the What is MariaDB 10.4? page.

Thanks, and enjoy MariaDB!

Notable Items


  • As per the MariaDB Deprecation Policy, this will be the last release of MariaDB 10.4 for Ubuntu 18.04 LTS "Bionic"
  • mysqldump --force doesn't ignore error as it should (MDEV-31092)
  • ROW variables do not get assigned from subselects (MDEV-31250)
  • Crash after setting global session_track_system_variables to an invalid value (MDEV-25237)
  • ODKU of non-versioning column inserts history row (MDEV-23100)
  • UPDATE not working properly on transaction precise system versioned table (MDEV-25644)
  • Assertion `const_item_cache == true' failed in Item_func::fix_fields (MDEV-31319)
  • ANALYZE doesn't work with pushed derived tables (MDEV-29284)
  • get_partition_set is never executed in ha_partition::multi_range_key_create_key due to bitwise & with 0 constant (MDEV-24712)
  • Client can crash the server with a mysql_list_fields("view") call (MDEV-30159)
  • I_S.parameters not immediatly changed updated after procedure change (MDEV-31064)

Character Sets, Data Types

  • UBSAN: null pointer passed as argument 1, which is declared to never be null in my_strnncoll_binary on SELECT ... COUNT or GROUP_CONCAT (MDEV-28384)
  • Possibly wrong result or Assertion `0' failed in Item_func_round::native_op (MDEV-23838)
  • Assertion `(length % 4) == 0' failed in my_lengthsp_utf32 on SELECT (MDEV-29019)
  • UBSAN: negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in Item_func_mul::int_op and Item_func_round::int_op (MDEV-30932)
  • Assorted assertion failures in json_find_path with certain collations (MDEV-23187)


  • innochecksum dies with Floating point exception (MDEV-31641)
  • Deadlock with 3 concurrent DELETEs by unique key (MDEV-10962)
  • Assertion `!strcmp(index->table->name.m_name, "SYS_FOREIGN") || !strcmp(index->table->name.m_name, "SYS_FOREIGN_COLS")' failed in btr_node_ptr_max_size (MDEV-19216)
  • MODIFY COLUMN can break FK constraints, and lead to unrestorable dumps (MDEV-31086)


  • Various crashes upon INSERT/UPDATE after changing Aria settings (MDEV-28054)
  • Various crashes/asserts/corruptions when Aria encryption is enabled/used, but the encryption plugin is not loaded (MDEV-26258)


  • SIGSEGV in spider_db_open_item_field and SIGSEGV in spider_db_print_item_type, on SELECT (MDEV-29447)
  • Spider variables that double as table params overriding mechanism is buggy (MDEV-31524)


  • Assertion `last_key_entry >= end_pos' failed in virtual bool JOIN_CACHE_HASHED::put_record() (MDEV-31348)
  • Problem with open ranges on prefix blobs keys (MDEV-31800)
  • Equal on two RANK window functions create wrong result (MDEV-20010)
  • Recursive CTE execution is interrupted without errors or warnings (MDEV-31214)
  • MAX_SEL_ARG memory exhaustion is not visible in the optimizer trace (MDEV-30964)
  • SHOW TABLES not working properly with lower_case_table_names=2 (MDEV-30765)
  • Segfault on select query using index for group-by and filesort (MDEV-30143)


  • Parallel Slave SQL Thread Can Update Seconds_Behind_Master with Active Workers (MDEV-30619)
  • ALTER SEQUENCE ends up in optimistic parallel slave binlog out-of-order (MDEV-31503)
  • STOP SLAVE takes very long time on a busy system (MDEV-13915)
  • rpl.rpl_manual_change_index_file occasionally fails in BB with Result length mismatch (MDEV-30214)


  • Node has been dropped from the cluster on Startup / Shutdown with async replica (MDEV-31413)
  • MariaDB stuck on starting commit state (waiting on commit order critical section) (MDEV-29293)
  • Assertion state() == s_aborting || state() == s_must_replay failed in int wsrep::transaction::after_rollback() (MDEV-30013)
  • Assertion !wsrep_has_changes(thd) || (thd->lex->sql_command == SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row()) || thd->wsrep_cs().transaction().state() == wsrep::transaction::s_aborted failed (MDEV-30388)
  • Server crashes when wsrep_sst_donor and wsrep_cluster_address set to NULL (MDEV-28433)
  • Create temporary sequence can cause inconsistency (MDEV-31335)
  • Galera 4 unable to query cluster state if not primary component (MDEV-21479)


For a complete list of changes made in MariaDB 10.4.31, with links to detailed information on each push, see the changelog.


For a full list of contributors to MariaDB 10.4.31, see the MariaDB Foundation release announcement.

Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.

MariaDB may already be included in your favorite OS distribution. More information can be found on the Distributions which Include MariaDB page.


Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.