MySQL NDB Cluster 7.5.10 is a new release of MySQL NDB Cluster
7.5, based on MySQL Server 5.7 and including features in version
7.5 of the NDB
storage engine, as
well as fixing recently discovered bugs in previous NDB Cluster
releases.
Obtaining MySQL NDB Cluster 7.5. MySQL NDB Cluster 7.5 source code and binaries can be obtained from https://dev.mysql.com/downloads/cluster/.
For an overview of changes made in MySQL NDB Cluster 7.5, see What is New in NDB Cluster 7.5.
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 5.7 through MySQL 5.7.22 (see Changes in MySQL 5.7.22 (2018-04-19, General Availability)).
-
NDB Cluster APIs: A previous fix for an issue, in which the failure of multiple data nodes during a partial restart could cause API nodes to fail, did not properly check the validity of the associated
NdbReceiver
object before proceeding. Now in such cases an invalid object triggers handling for invalid signals, rather than a node failure. (Bug #25902137)References: This issue is a regression of: Bug #25092498.
NDB Cluster APIs: Incorrect results, usually an empty result set, were returned when
setBound()
was used to specify aNULL
bound. This issue appears to have been caused by a problem in gcc, limited to cases using the old version of this method (which does not employNdbRecord
), and is fixed by rewriting the problematic internal logic in the old implementation. (Bug #89468, Bug #27461752)MySQL NDB ClusterJ: ClusterJ quit unexpectedly as there was no error handling in the
scanIndex()
function of theClusterTransactionImpl
class for a null returned to it internally by thescanIndex()
method of thendbTransaction
class. (Bug #27297681, Bug #88989)In some circumstances, when a transaction was aborted in the
DBTC
block, there remained links to trigger records from operation records which were not yet reference-counted, but when such an operation record was released the trigger reference count was still decremented. (Bug #27629680)ANALYZE TABLE
used excessive amounts of CPU on large, low-cardinality tables. (Bug #27438963)-
Queries using very large lists with
IN
were not handled correctly, which could lead to data node failures. (Bug #27397802)References: See also: Bug #28728603.
-
A data node overload could in some situations lead to an unplanned shutdown of the data node, which led to all data nodes disconnecting from the management and nodes.
This was due to a situation in which
API_FAILREQ
was not the last received signal prior to the node failure.As part of this fix, the transaction coordinator's handling of
SCAN_TABREQ
signals for anApiConnectRecord
in an incorrect state was also improved. (Bug #27381901)References: See also: Bug #47039, Bug #11755287.
In a two-node cluster, when the node having the lowest ID was started using
--nostart
, API clients could not connect, failing with Could not alloc node id at HOST port PORT_NO: No free node id found for mysqld(API). (Bug #27225212)-
Under certain conditions, data nodes restarted unnecessarily during execution of
ALTER TABLE... REORGANIZE PARTITION
. (Bug #25675481)References: See also: Bug #26735618, Bug #27191468.
-
Race conditions sometimes occurred during asynchronous disconnection and reconnection of the transporter while other threads concurrently inserted signal data into the send buffers, leading to an unplanned shutdown of the cluster.
As part of the work fixing this issue, the internal templating function used by the Transporter Registry when it prepares a send is refactored to use likely-or-unlikely logic to speed up execution, and to remove a number of duplicate checks for NULL. (Bug #24444908, Bug #25128512)
References: See also: Bug #20112700.
ndb_restore sometimes logged data file and log file progress values much greater than 100%. (Bug #20989106)
As a result of the reuse of code intended for send threads when performing an assist send, all of the local release send buffers were released to the global pool, which caused the intended level of the local send buffer pool to be ignored. Now send threads and assisting worker threads follow their own policies for maintaining their local buffer pools. (Bug #89119, Bug #27349118)
When sending priority A signals, we now ensure that the number of pending signals is explicitly initialized. (Bug #88986, Bug #27294856)
ndb_restore
--print-data
--hex
did not print trailing 0s ofLONGVARBINARY
values. (Bug #65560, Bug #14198580)