Documentation Home
MySQL NDB Cluster 8.0 Release Notes
Related Documentation Download these Release Notes
PDF (US Ltr) - 1.9Mb
PDF (A4) - 1.9Mb


MySQL NDB Cluster 8.0 Release Notes  /  Changes in MySQL NDB Cluster 8.0.37 (2024-04-30, General Availability)

Changes in MySQL NDB Cluster 8.0.37 (2024-04-30, General Availability)

MySQL NDB Cluster 8.0.37 is a new release of NDB 8.0, based on MySQL Server 8.0 and including features in version 8.0 of the NDB storage engine, as well as fixing recently discovered bugs in previous NDB Cluster releases.

Obtaining NDB Cluster 8.0.  NDB Cluster 8.0 source code and binaries can be obtained from https://dev.mysql.com/downloads/cluster/.

For an overview of changes made in NDB Cluster 8.0, see What is New in MySQL NDB Cluster 8.0.

This release also incorporates all bug fixes and changes made in previous NDB Cluster releases, as well as all bug fixes and feature changes which were added in mainline MySQL 8.0 through MySQL 8.0.37 (see Changes in MySQL 8.0.37 (2024-04-30, General Availability)).

Functionality Added or Changed

  • Important Change: Now, when the removal of a data node file or directory fails with a file does not exist (ENOENT) error, this is treated as a successful removal.

  • Packaging: Added support for Fedora 40 and Ubuntu 24.04.

  • ndbinfo Information Database: Added the transporter_details table to the ndbinfo information database. This table is similar to the transporters table, but provides information about individual transporters rather than in the aggregate.

    For more information, see The ndbinfo transporter_details Table. (Bug #113163, Bug #36031560)

  • NDB Client Programs: Added the --verbose option to the ndb_waiter test program to control the verbosity level of the output. (Bug #34547034)

  • Improved logging related to purging of the binary log, including start and completions times, and whether it is the injector which has initiated the purge. (Bug #36176983)

Bugs Fixed

  • NDB Client Programs: ndb_redo_log_reader could not read data from encrypted files. (Bug #36313482)

  • NDB Client Programs: The following command-line options did not function correctly for the ndb_redo_log_reader utility program:

    (Bug #36313427)

  • NDB Client Programs: ndb_redo_log_reader exited with Record type = 0 not implemented when reaching an unused page, all zero bytes, or a page which was only partially used (typically a page consisting of the page header only). (Bug #36313259)

  • NDB Client Programs: Invoking ndb_mgmd with the --bind-address option could in some cases cause the program to terminate unexpectedly. (Bug #36263410)

  • NDB Client Programs: Work begun in NDB 8.0.18 and 8.0.20 to remove the unnecessary text NDBT_ProgramExit ... from the output of NDB programs is completed in this release. This message should no longer appear in the release binaries of any such programs. (Bug #36169823)

    References: See also: Bug #27096741.

  • NDB Client Programs: The use of a strict 80-character limit for clang-format on the file CommandInterpreter.cpp broke the formatting of the interactive help text in the NDB management client. (Bug #36034395)

  • An implicit rollback generated when refusing to discover a table in an ongoing transaction caused the entire transaction to roll back. This could happen when a table definition changed while a transaction was active. We also checked at such times to see whether the table already existed in the data dictionary, which also meant that a subsequent read from same table within the same transaction would (wrongly) allow discovery.

    Now in such cases, we skip checking whether or not a given table already exists in the data dictionary; instead, we now always refuse discovery of a table that is altered while a transaction is ongoing and return an error to the user. (Bug #36191370)

  • When a backup was restored using ndb_restore with --disable-indexes and --restore-privilege-tables, the ordered index of the primary key was lost on the mysql.ndb_sql_metadata table, and could not be rebuilt even with --rebuild-indexes. (Bug #36157626)

  • SSL_pending() data from an SSL-enabled NdbSocket was not adequately checked for. (Bug #36076879)

  • In certain cases, ndb_mgmd hung when attempting to sending a stop signal to ndbmtd. (Bug #36066725)

  • Starting a replica to apply changes when NDB was not yet ready or had no yet started led to an unhelpful error message (Fatal error: Failed to run 'applier_start' hook). This happened when the replica started and the applier start hook waited for the number of seconds specified by --ndb-wait-setup for NDB to become ready; if it was not ready by then, the start hook reported the failure. Now in such cases, we let processing continue, instead, and allow the error to be returned from NDB, which better indicates its true source. (Bug #36054134)

  • A mysqld process took much longer than expected to shut down when all data nodes were unreachable. (Bug #36052113)

  • It was possible in certain cases for the TRPMAN block to operate on transporters outside its own receive thread. (Bug #36028782)

  • A replica could not apply a row change while handling a Table definition changed error. Now any such error is handled as a temporary error which can be retried multiple times. (Bug #35826145)

  • Repeated incomplete incomplete attempts to perform a system restart in some cases left the cluster in a state from which it could not recover without restoring it from backup. (Bug #35801548)

  • The event buffer used by the NDB API maintains an internal pool of free memory to reduce the interactions with the runtime and operating system, while allowing memory that is no longer needed to be returned for other uses. This free memory is subtracted from the total allocated memory to determine the memory is use which is reported and used for enforcing buffer limits and other purposes; this was represented using a 32-bit value, so that if it exceeded 4 GB, the value wrapped, and the amount of free memory appeared to be reduced. This had potentially adverse effects on event buffer memory release to the runtime and OS, free memory reporting, and memory limit handling.

    This is fixed by using a 64-bit value to represent the amount of pooled free memory. (Bug #35483764)

    References: See also: Bug #35655162, Bug #35663761.

  • START REPLICA, STOP REPLICA, and RESET REPLICA statements are now written to mysqld.log. (Bug #35207235)

  • NDB transporter handling in mt.cpp differentiated between neighbor transporters carrying signals between nodes in the same node group, and all other transporters. This sometimes led to issues with multiple transporters when a transporter connected nodes that were neighbors with nodes that were not. (Bug #33800633)

  • Removed unnecessary warnings generated by transient disconnections of data nodes during restore operations. (Bug #33144487)

  • In some cases, when trying to perform an online add index operation on an NDB table with no explicit primary key (see Limitations of NDB online operations), the resulting error message did not make the nature of the problem clear. (Bug #30766579)

    References: See also: Bug #36382071.

  • API nodes did not record any information in the log relating to disconnects due to missed heartbeats from the data nodes. (Bug #29623286)