MySQL Lists are EOL. Please join:

List:General Discussion« Previous MessageNext Message »
From:Balasubramanian Kandasamy Date:October 23 2018 2:10pm
Subject:MySQL Cluster 8.0.13-dmr has been released
View as plain text  
Dear MySQL Users,

MySQL Cluster is the distributed database combining massive
scalability and high availability. It provides in-memory
real-time access with transactional consistency across
partitioned and distributed datasets. It is designed for
mission critical applications.

MySQL Cluster has replication between clusters across multiple
geographical sites built-in. A shared nothing architecture with
data locality awareness make it the perfect choice for running
on commodity hardware and in globally distributed cloud

This storage engine provides:

   - In-Memory storage - Real-time performance (with optional
     checkpointing to disk)
   - Transparent Auto-Sharding - Read & write scalability
   - Active-Active/Multi-Master geographic replication
   - Transactional consistency across partitioned and distributed datasets
   - Parallel cross partition queries such as joins

   - 99.9999% High Availability with no single point of failure
     and on-line maintenance
   - NoSQL and SQL APIs (including C++, Java, http, Memcached
     and JavaScript/Node.js)

MySQL Cluster 8.0.13-dmr, has been released and can be downloaded from

where you will also find Quick Start guides to help you get your
first MySQL Cluster database up and running.

The release notes are available from

MySQL Cluster enables users to meet the database challenges of next
generation web, cloud, and communications services with uncompromising
scalability, uptime and agility.

More details can be found at

Enjoy !

Changes in MySQL NDB Cluster 8.0.13 (2018-10-23, Development Milestone)

    MySQL NDB Cluster 8.0.13 is a new development 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

    For an overview of changes made in NDB Cluster 8.0, see
    What is New in 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.13 (see Changes in MySQL 8.0.13 (2018-10-22)

      * Functionality Added or Changed

      * Bugs Fixed

Functionality Added or Changed

      * Important Change; NDB Disk Data: The following changes
        are made in the display of information about Disk
        files in the INFORMATION_SCHEMA.FILES table:

           + Tablespaces and log file groups
are no longer
             represented in the
FILES table. (These constructs
             are not actually

           + Each data file is now
represented by a single row in
             the FILES table. Each
undo log file is also now
             represented in this
table by one row only.
             (Previously, a row was
displayed for each copy of
             each of these files on
each data node.)

           + For rows corresponding to data
files or undo log
             files, node ID and
undo log buffer information is no
             longer displayed in
the EXTRA column of the FILES

      * Important Change; NDB Client Programs: Removed the
        deprecated --ndb option for perror. Use ndb_perror
        obtain error message information from NDB error
        instead. (Bug #81705, Bug #23523957)
        References: See also: Bug #81704, Bug #23523926.

      * Important Change: Beginning with this release, MySQL NDB
        Cluster is being developed in parallel with the
        MySQL 8.0 server under a new unified release model
        the following features:

           + NDB 8.0 is developed in, built
from, and released
             with the MySQL 8.0
source code tree.

           + The numbering scheme for NDB
Cluster 8.0 releases
             follows the scheme for
MySQL 8.0, starting with the
             current MySQL release

           + Building the source with NDB
support appends
             -cluster to the
version string returned by mysql -V,
             as shown here:
             shell≫ mysql -V
             mysql  Ver
8.0.13-cluster for Linux on x86_64 (Source 

             NDB binaries continue
to display both the MySQL
             Server version and the
NDB engine version, like
             shell> ndb_mgm -V
             MySQL distrib
mysql-8.0.13 ndb-8.0.13-dmr, for Linux (x86_64)

             In MySQL Cluster NDB
8.0, these two version numbers
             are always the same.
        To build the MySQL 8.0.13 (or later) source with NDB
        Cluster support, use the CMake option

      * INFORMATION_SCHEMA tables now are populated with
        tablespace statistics for MySQL Cluster tables. (Bug

      * It is now possible to specify a set of cores to be used
        for I/O threads performing offline multithreaded
        of ordered indexes, as opposed to normal I/O duties
        as file I/O, compression, or decompression.
"Offline" in
        this context refers to building of ordered indexes
        performed when the parent table is not being written
        such building takes place when an NDB cluster
performs a
        node or system restart, or as part of restoring a
        from backup using ndb_restore --rebuild-indexes.
        In addition, the default behaviour for offline index
        build work is modified to use all cores available to
        ndbmtd, rather limiting itself to the core reserved
        the I/O thread. Doing so can improve restart and
        times and performance, availability, and the user
        This enhancement is implemented as follows:

          1. The default value for
BuildIndexThreads is changed
             from 0 to 128. This
means that offline ordered index
             builds are now
multithreaded by default.

          2. The default value for
             is changed from false
to true. This means that an
             initial node restart
first copies all data from a
             "live" node to one
that is starting---without
             creating any
indexes---builds ordered indexes
             offline, and then
again synchronizes its data with
             the live node, that
is, synchronizing twice and
             building indexes
offline between the two
             synchonizations. This
causes an initial node restart
             to behave more like
the normal restart of a node,
             and reduces the time
required for building indexes.

          3. A new thread type (idxbld) is defined
for the
configuration parameter, to allow
             locking of offline
index build threads to specific
        In addition, NDB now distinguishes the thread types
        are accessible to "ThreadConfig" by the following

          1. Whether the thread is an execution
thread. Threads
             of types main, ldm,
recv, rep, tc, and send are
             execution threads;
thread types io, watchdog, and
             idxbld are not.

          2. Whether the allocation of the thread
to a given task
             is permanent or
temporary. Currently all thread
             types except idxbld
are permanent.
        For additonal information, see the descriptions of
        parameters in the Manual. (Bug #25835748, Bug

      * When performing an NDB backup, the ndbinfo.logbuffers
        table now displays information regarding buffer
usage by
        the backup process on each data node. This is
        as rows reflecting two new log types in addition to
        and DD-UNDO. One of these rows has the log type
        BACKUP-DATA, which shows the amount of data buffer
        during backup to copy fragments to backup files. The
        other row has the log type BACKUP-LOG, which
displays the
        amount of log buffer used during the backup to
        changes made after the backup has started. One each
        these log_type rows is shown in the logbuffers table
        each data node in the cluster. Rows having these two
        types are present in the table only while an NDB
        is currently in progress. (Bug #25822988)

      * Added the ODirectSyncFlag configuration parameter for
        data nodes. When enabled, the data node treats all
        completed filesystem writes to the redo log as
        they had been performed using fsync.
        This parameter has no effect if at least one of the
        following conditions is true:

           + ODirect is not enabled.

           + InitFragmentLogFiles is set to
        (Bug #25428560)

      * Added the --logbuffer-size option for ndbd and ndbmtd,
        for use in debugging with a large number of log
        This controls the size of the data node log buffer;
        default (32K) is intended for normal operations.
        #89679, Bug #27550943)

      * Prior to NDB 8.0, all string hashing was based on first
        transforming the string into a normalized form, then
        MD5-hashing the resulting binary image. This could
        rise to some performance problems, for the following

           + The normalized string is always
space padded to its
             full length. For a
VARCHAR, this often involved
             adding more spaces
than there were characters in the
             original string.

           + The string libraries were not
optimized for this
             space padding, and
added considerable overhead in
             some use cases.

           + The padding semantics varied
between character sets,
             some of which were not
padded to their full length.

           + The transformed string could
become quite large,
             even without space
padding; some Unicode 9.0
             collations can
transform a single code point into
             100 bytes of character
data or more.

           + Subsequent MD5 hashing consisted
mainly of padding
             with spaces, and was
not particularly efficient,
             possibly causing
additional performance penalties by
             flush significant
portions of the L1 cache.
        Collations provide their own hash functions, which
        the string directly without first creating a
        string. In addition, for Unicode 9.0 collations, the
        hashes are computed without padding. NDB now takes
        advantage of this built-in function whenever hashing
        string identified as using a Unicode 9.0 collation.
        Since, for other collations there are existing
        which are hash partitioned on the transformed
string, NDB
        continues to employ the previous method for hashing
        strings that use these, to maintain compatibility.
        #89609, Bug #27523758)
        References: See also: Bug #89590, Bug #27515000, Bug
        #89604, Bug #27522732.

      * A table created in NDB 7.6 and earlier contains metadata
        in the form of a compressed .frm file, which is no
        supported in MySQL 8.0. To facilitate online
upgrades to
        NDB 8.0, NDB performs on-the-fly translation of this
        metadata and writes it into the MySQL Server's data
        dictionary, which enables the mysqld in NDB Cluster
        to work with the table without preventing subsequent
        of the table by a previous version of the NDB
        Once a table's structure has been modified in NDB
        its metadata is stored using the Data Dictionary,
and it
        can no longer be accessed by NDB 7.6 and earlier.
        This enhancement also makes it possible to restore
an NDB
        backup made using an earlier version to a cluster
        NDB 8.0 (or later).

Bugs Fixed

      * Important Change; NDB Disk Data: It was possible to issue
        a CREATE TABLE statement that referred to a
        tablespace. Now such a statement fails with an
        (Bug #85859, Bug #25860404)

      * Important Change; NDB Replication: Because the MySQL
        Server now executes RESET MASTER with a global read
        the behavior of this statement when used with NDB
        has changed in the following two respects:

           + It is no longer guaranteed to be
synchronous; that
             is, it is now possible
that a read coming
             immediately before
RESET MASTER is issued may not be
             logged until after the
binary log has been rotated.

           + It now behaves identically,
regardless of whether
             the statement is
issued on the same SQL node that is
             writing the binary
log, or on a different SQL node
             in the same cluster.
        SHOW BINLOG EVENTS, FLUSH LOGS, and most data
        statements continue, as they did in previous NDB
        versions, to operate in a synchronous fashion.
        (Bug #89976, Bug #27665565)

      * Important Change: NDB supports any of the following three
        values for the CREATE TABLE statement's ROW_FORMAT
        option: DEFAULT, FIXED, and DYNAMIC. Formerly, any
        other than these were accepted but resulted in
        being used. Now a CREATE TABLE statement that
attempts to
        create an NDB table fails with an error if
        used, and does not have one of the three values
        (Bug #88803, Bug #27230898)

      * Microsoft Windows; ndbinfo Information Database: The
        process ID of the monitor process used on Windows
        platforms by RESTART to spawn and restart a mysqld
is now
        shown in the ndbinfo.processes table as an
        (Bug #90235, Bug #27767237)

      * NDB Cluster APIs: The example NDB API programs
        ndbapi_array_simple and ndbapi_array_using_adapter
        not perform cleanup following execution; in
addition, the
        example program ndbapi_simple_dual did not check to
        whether the table used by this example already
        Due to these issues, none of these examples could be
        more than once in succession.
        The issues just described have been corrected in the
        example sources, and the relevant code listings in
        NDB API documentation have been updated to match.

      * 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
        check the validity of the associated NdbReceiver
        before proceeding. Now in such cases an invalid
        triggers handling for invalid signals, rather than a
        failure. (Bug #25902137)
        References: This issue is a regression of: Bug

      * NDB Cluster APIs: Incorrect results, usually an empty
        result set, were returned when setBound() was used
        specify a NULL bound. This issue appears to have
        caused by a problem in gcc, limited to cases using
        old version of this method (which does not employ
        NdbRecord), and is fixed by rewriting the
        internal logic in the old implementation. (Bug
        Bug #27461752)

      * NDB Cluster APIs: Released NDB API objects are kept in
        one or more Ndb_free_list structures for later
        Each list also keeps track of all objects seized
from it,
        and makes sure that these are eventually released
back to
        it. In the event that the internal function
        NdbScanOperation::init() failed, it was possible for
        NdbApiSignal already allocated by the NdbOperation
to be
        leaked. Now in such cases,
NdbScanOperation::release() is
        called to release any objects allocated by the
        NdbScanOperation before it is returned to the free
        This fix also handles a similar issue with
        NdbOperation::init(), where a failed call could also
        a signal. (Bug #89249, Bug #27389894)

      * NDB Cluster APIs: Removed the unused TFSentinel
        implementation class, which raised compiler warnings
        32-bit systems. (Bug #89005, Bug #27302881)

      * NDB Cluster APIs: The success of thread creation by API
        calls was not always checked, which could lead to
        timeouts in some cases. (Bug #88784, Bug #27225714)

      * ndbinfo Information Database: Counts of committed rows
        and committed operations per fragment used by some
        in ndbinfo were taken from the DBACC block, but due
        the fact that commit signals can arrive out of
        transient counter values could be negative. This
        happen if, for example, a transaction contained
        interleaved insert and delete operations on the same
        in such cases, commit signals for delete operations
        arrive before those for the corresponding insert
        operations, leading to a failure in DBACC.
        This issue is fixed by using the counts of committed
        which are kept in DBTUP, which do not have this
        (Bug #88087, Bug #26968613)

      * NDB Client Programs: When passed an invalid connection
        string, the ndb_mgm client did not always free up
        memory used before exiting. (Bug #90179, Bug

      * NDB Client Programs: ndb_show_tables did not always free
        up all memory which it used. (Bug #90152, Bug

      * NDB Client Programs: On Unix platforms, the
        Auto-Installer failed to stop the cluster when
        was installed in a directory other than the default.
        #89624, Bug #27531186)

      * NDB Client Programs: The Auto-Installer did not provide a
        mechanism for setting the ServerPort parameter. (Bug
        #89623, Bug #27539823)

      * MySQL NDB ClusterJ: When a table containing a BLOB or a
        TEXT field was being queried with ClusterJ for a
        that did not exist, an exception ("The method is not
        valid in current blob state") was thrown. (Bug

      * MySQL NDB ClusterJ: ClusterJ quit unexpectedly as there
        was no error handling in the scanIndex() function of
        ClusterTransactionImpl class for a null returned to
        internally by the scanIndex() method of the
        ndbTransaction class. (Bug #27297681, Bug #88989)

      * Local checkpoints did not always handle DROP TABLE
        operations correctly. (Bug #27926532)
        References: This issue is a regression of: Bug
        Bug #26968613.

      * In some circumstances, when a transaction was aborted in
        the DBTC block, there remained links to trigger
        from operation records which were not yet
        reference-counted, but when such an operation record
        released the trigger reference count was still
        decremented. (Bug #27629680)

      * NDB attempted to drop subscriptions which had already
        been dropped, leading to a data node shutdown with
        2341. (Bug #27622643)

      * An NDB online backup consists of data, which is fuzzy,
        and a redo and undo log. To restore to a consistent
        it is necessary to ensure that the log contains all
        the changes spanning the capture of the fuzzy data
        portion and beyond to a consistent snapshot point.
        is achieved by waiting for a GCI boundary to be
        after the capture of data is complete, but before
        stopping change logging and recording the stop GCI
in the
        backup's metadata.
        At restore time, the log is replayed up to the stop
        restoring the system to the state it had at the
        consistent stop GCI. A problem arose when, under
load, it
        was possible to select a GCI boundary which occurred
        early and did not span all the data captured. This
        lead to inconsistencies when restoring the backup;
        could be be noticed as broken constraints or
        BLOB entries.
        Now the stop GCI is chosen is so that it spans the
        duration of the fuzzy data capture process, so that
        backup log always contains all data within a given
        GCI. (Bug #27497461)
        References: See also: Bug #27566346.

      * For NDB tables, when a foreign key was added or dropped
        as a part of a DDL statement, the foreign key
        for all parent tables referenced should be reloaded
        the handler on all SQL nodes connected to the
        but this was done only on the mysqld on which the
        statement was executed. Due to this, any subsequent
        queries relying on foreign key metadata from the
        corresponding parent tables could return
        results. (Bug #27439587)
        References: See also: Bug #82989, Bug #24666177.

      * 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.

      * A data node overload could in some situations lead to an
        unplanned shutdown of the data node, which led to
        data nodes disconnecting from the management and
        This was due to a situation in which API_FAILREQ was
        the last received signal prior to the node failure.
        As part of this fix, the transaction coordinator's
        handling of SCAN_TABREQ signals for an
        in an incorrect state was also improved. (Bug
        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
        port PORT_NO: No free node id found for mysqld(API).

      * Changing MaxNoOfExecutionThreads without an initial
        system restart led to an unplanned data node
        (Bug #27169282)
        References: This issue is a regression of: Bug
        Bug #26968613.

      * In most cases, and especially in error conditions, NDB
        command-line programs failed on exit to free memory
        by option handling, and failed to call ndb_end().
This is
        fixed by removing the internal methods
        ndb_load_defaults() and ndb_free_defaults() from
        storage/ndb/include/util/ndb_opts.h, and replacing
        with an Ndb_opts class that automatically frees such
        resources as part of its destructor. (Bug #26930148)
        References: See also: Bug #87396, Bug #26617328.

      * A query against the INFORMATION_SCHEMA.FILES table
        returned no results when it included an ORDER BY
        (Bug #26877788)

      * ClusterJ failed to connect to a MySQL node that used
        utf8mb4_800_ci_ai as its default character set for
        connection. Also, ClusterJ quit unexpectedly when
        handling a table with a character set number of 255
        larger. This fix corrected both issues. (Bug

      * During a restart, DBLQH loads redo log part metadata for
        each redo log part it manages, from one or more redo
        files. Since each file has a limited capacity for
        metadata, the number of files which must be
        depends on the size of the redo log part. These
files are
        opened, read, and closed sequentially, but the
closing of
        one file occurs concurrently with the opening of the
        In cases where closing of the file was slow, it was
        possible for more than 4 files per redo log part to
        open concurrently; since these files were opened
        the OM_WRITE_BUFFER option, more than 4 chunks of
        buffer were allocated per part in such cases. The
        buffer pool is not unlimited; if all redo log parts
        in a similar state, the pool was exhausted, causing
        data node to shut down.
        This issue is resolved by avoiding the use of
        OM_WRITE_BUFFER during metadata reload, so that any
        transient opening of more than 4 redo log files per
        file part no longer leads to failure of the data
        (Bug #25965370)

      * Under certain conditions, data nodes restarted
        unnecessarily during execution of ALTER TABLE...
        REORGANIZE PARTITION. (Bug #25679639)

      * Race conditions sometimes occurred during asynchronous
        disconnection and reconnection of the transporter
        other threads concurrently inserted signal data into
        send buffers, leading to an unplanned shutdown of
        As part of the work fixing this issue, the internal
        templating function used by the Transporter Registry
        it prepares a send is refactored to use
        likely-or-unlikely logic to speed up execution, and
        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

      * Removed unneeded debug printouts from the internal
        function ha_ndbcluster::copy_fk_for_offline_alter().
        #90991, Bug #28069711)

      * The internal function BitmaskImpl::setRange() set one bit
        fewer than specified. (Bug #90648, Bug #27931995)

      * Inserting a row into an NDB table having a
        self-referencing foreign key that referenced a
        index on the table other than the primary key failed
        ER_NO_REFERENCED_ROW_2. This was due to the fact
that NDB
        checked foreign key constraints before the unique
        was updated, so that the constraint check was unable
        use the index for locating the row. Now, in such
        NDB waits until all unique index values have been
        before checking foreign key constraints on the
        row. (Bug #90644, Bug #27930382)
        References: See also: Bug #91965, Bug #28486390.

      * Removed all references to the C++ register storage class
        in the NDB Cluster sources; use of this specifier,
        was deprecated in C++11 and removed in C++17, raised
        warnings when building with recent compilers. (Bug
        #90110, Bug #27705985)

      * It was not possible to create an NDB table using
        FOR_RA_BY_LDM_X_3, or FOR_RA_BY_LDM_X_4. (Bug
#89811, Bug
        References: This issue is a regression of: Bug
        Bug #23544301.

      * Adding a [tcp] or [shm] section to the global
        configuration file for a cluster with multiple data
        caused default TCP connections to be lost to the
        using the single section. (Bug #89627, Bug

      * Removed a memory leak in the configuration file parser.
        (Bug #89392, Bug #27440614)

      * Fixed a number of implicit-fallthrough warnings, warnings
        raised by uninitialized values, and other warnings
        encountered when compiling NDB with GCC 7.2.0. (Bug
        #89254, Bug #89255, Bug #89258, Bug #89259, Bug
        Bug #27390714, Bug #27390745, Bug #27390684, Bug
        #27390816, Bug #27396662)
        References: See also: Bug #88136, Bug #26990244.

      * Node connection states were not always reported correctly
        by ClusterMgr immediately after reporting a
        disconnection. (Bug #89121, Bug #27349285)

      * As a result of the reuse of code intended for send
        threads when performing an assist send, all of the
        release send buffers were released to the global
        which caused the intended level of the local send
        pool to be ignored. Now send threads and assisting
        threads follow their own policies for maintaining
        local buffer pools. (Bug #89119, Bug #27349118)

      * When the PGMAN block seized a new Page_request record
        using seizeLast, its return value was not checked,
        could cause access to invalid memory. (Bug #89009,

      * TCROLLBACKREP signals were not handled correctly by the
        DBTC kernel block. (Bug #89004, Bug #27302734)

      * When sending priority A signals, we now ensure that the
        number of pending signals is explicitly initialized.
        #88986, Bug #27294856)

      * The internal function ha_ndbcluster::unpack_record() did
        not perform proper error handling. (Bug #88587, Bug

      * CHECKSUM is not supported for NDB tables, but this was
        not not reflected in the CHECKSUM column of the
        INFORMATION_SCHEMA.TABLES table, which could
        assume a random value in such cases. Now the value
        this column is always set to NULL for NDB tables,
just as
        it is for InnoDB tables. (Bug #88552, Bug #27143813)

      * Removed a memory leak detected when running ndb_mgm -e
        "CLUSTERLOG ...". (Bug #88517, Bug #27128846)

      * When terminating, ndb_config did not release all memory
        which it had used. (Bug #88515, Bug #27128398)

      * ndb_restore did not free memory properly before exiting.
        (Bug #88514, Bug #27128361)

      * In certain circumstances where multiple Ndb objects were
        being used in parallel from an API node, the block
        extracted from a block reference in DBLQH was the
same as
        that of a SUMA block even though the request was
        from an API node. Due to this ambiguity, DBLQH
        the request from the API node for a request from a
        block and failed. This is fixed by checking node IDs
        before checking block numbers. (Bug #88441, Bug

      * A join entirely within the materialized part of a
        semi-join was not pushed even if it could have been.
        addition, EXPLAIN provided no information about why
        join was not pushed. (Bug #88224, Bug #27022925)
        References: See also: Bug #27067538.

      * All known compiler warnings raised by -Werror when
        building the NDB source code have been fixed. (Bug
        #88136, Bug #26990244)

      * When the duplicate weedout algorithm was used for
        evaluating a semi-join, the result had missing rows.
        #88117, Bug #26984919)
        References: See also: Bug #87992, Bug #26926666.

      * NDB did not compile with GCC 7. (Bug #88011, Bug

      * A table used in a loose scan could be used as a child in
        a pushed join query, leading to possibly incorrect
        results. (Bug #87992, Bug #26926666)

      * When representing a materialized semi-join in the query
        plan, the MySQL Optimizer inserted extra QEP_TAB and
        JOIN_TAB objects to represent access to the
        subquery result. The join pushdown analyzer did not
        properly set up its internal data structures for
        leaving them uninitialized instead. This meant that
        usage of any item objects referencing the
        semi-join accessed an initialized tableno column
        accessing a 64-bit tableno bitmask, possibly
referring to
        a point beyond its end, leading to an unplanned
        of the SQL node. (Bug #87971, Bug #26919289)

      * In some cases, a SCAN_FRAGCONF signal was received after
        a SCAN_FRAGREQ with a close flag had already been
        clearing the timer. When this occurred, the next
        SCAN_FRAGREF to arrive caused time tracking to fail.
        in such cases, a check for a cleared timer is
        prior to processing the SCAN_FRAGREF message. (Bug
        #87942, Bug #26908347)

      * While deleting an element in Dbacc, or moving it during
        hash table expansion or reduction, the method used
        (getLastAndRemove()) could return a reference to a
        removed element on a released page, which could
later be
        referenced from the functions calling it. This was
due to
        a change brought about by the implementation of
        index memory in NDB 7.6.2; previously, the page had
        always belonged to a single Dbacc instance, so
        it was safe. This was no longer the case following
        change; a page released in Dbacc could be placed
        into the global page pool where any other thread
        then allocate it.
        Now we make sure that newly released pages in Dbacc
        kept within the current Dbacc instance and not given
        directly to the global page pool. In addition, the
        reference to a released page has been removed; the
        affected internal method now returns the last
element by
        value, rather than by reference. (Bug #87932, Bug
        References: See also: Bug #87987, Bug #26925595.

      * When creating a table with a nonexistent conflict
        detection function, NDB returned an improper error
        message. (Bug #87628, Bug #26730019)

      * ndb_top failed to build with the error "HAVE_NCURSESW_H"
        is not defined. (Bug #87035, Bug #26429281)

      * In a MySQL Cluster with one MySQL Server configured to
        write a binary log failure occurred when creating
        using an NDB table with non-stored generated
columns. The
        problem arose only when the product was built with
        debugging support. (Bug #86084, Bug #25957586)

      * It was possible to create or alter a STORAGE MEMORY table
        using a nonexistent tablespace without any error
        resulting. Such an operation now fails with Error
        ER_TABLESPACE_MISSING_WITH_NAME, as intended. (Bug
        #82116, Bug #23744378)

      * ndb_restore --print_data --hex did not print trailing 0s
        of LONGVARBINARY values. (Bug #65560, Bug #14198580)

      * When the internal function
        ha_ndbcluster::copy_fk_for_offline_alter() checked
        dependent objects on a table from which it was
        to drop a foreign key, it did not perform any
        for foreign keys, making it possible for it to
        retrieval of an index or trigger instead, leading to
        spurious Error 723 (No such table).

On Behalf of Oracle/MySQL Release Engineering Team,
Balasubramanian Kandasamy
MySQL Cluster 8.0.13-dmr has been releasedBalasubramanian Kandasamy23 Oct