Resolved Issues

Where resolution is associated with a reported issue, a Zendesk reference number is displayed, for example (10283).

This section includes fixes that don’t change the behavior of the product. For a summary of changes, see Changes in this release.

Resolved in NuoDB 4.2.1

  • Issues resolved in the Vectorized Execution Engine (VEE)

    1. An INSERT statement with multiple values and subqueries only processes the first value.

    2. Direct use of an EXISTS subquery may result in an error converting boolean from a string value.

    3. An error would occur converting a string to a Date/Time if white space was used as a separator in the date/time string.

    4. An incorrect data value results when casting a binary data type to NUMERIC and a BINARY string to BIGINT.

    5. Casting a BIGINT to a binary data type should align the value to the next byte boundary.
      These issues have been resolved.

  • In NuoDB 4.2.0 environments that run on the Red Hat RHEL or CentOS OS and use the RPM package manager to remove NuoDB, an error would display, "error reading information on service nuoagent: No such file or directory." However, the uninstall would perform correctly. In this same environment, when performing a release upgrade, the upgrade would perform as an uninstall and remove content (e.g., systemd service files, the nuodb user account, configuration files, etc.) that it should not.
    These issues have been resolved.

  • A Storage Manager (SM) would check permissions on the default journal directory even if an alternate journal directory was specified (via --journal-dir); if the default journal directory was not accessible the SM would refuse to start. (11025)
    The issue has been resolved.

  • In the rare case a NuoDB Admin state snapshot grew larger than 10MB, then the message, “WARN [admin-nuodb-primary-0:main] DurableLogState Attempting to truncate end of log due to exception.” would get written to the nuoadmin.log, and the Raft state data would get lost.
    The issue has been resolved.

  • After upgrading the NuoDB Helm Charts to 3.1.0, it was possible that the NuoDB Admin readiness probe could generate false positives. This may happen more often on systems where a lot of domain operations (i.e. raft commands) are committed frequently.
    The issue has been resolved.

  • In Kubernetes deployments, previously a hotcopy database backup request would fail if some of the database processes are in a status other than RUNNING. The nuodocker backup database command that is implemented in the NuoDB Helm Charts will now exclude archives served by non-running processes.
    The issue has been resolved.

  • A database consisting only of TEs and Asynchronous Storage Managers (ASMs) is non-durable, hence it will be shut down automatically. (11952)
    The issue has been resolved.

  • If a Storage Manager (SM) did not stop cleanly, on rare occasions starting a new SM for the same archive would fail with error, "journal <journal name> not found in <directory>." (11938)
    The issue has been resolved.

Resolved in NuoDB 4.2

This section provides a summary of the issues resolved in the release of NuoDB 4.2 compared with the original NuoDB 4.1 release.

  • A Transaction Engine (TE) will assert when a SQL statement processes a special date value of year 1, month 1, day 1, format string '0001-01-01 00:00:00' if the UTC offset of the database connection reading the value is less than the UTC offset of the database connection that wrote the value to the database. (11481)
    The issue has been resolved.

  • If all TEs and SMs have been upgraded to a later release but the effective database version is still an older release, then the SQL SHOW DATABASE command returns the following error: Error 58000: can’t find release version string for database. (11699)
    The issue has been resolved.

  • If a majority of Admin Processes in the domain membership are restarted without Raft data, they may bootstrap (create) a new domain rather than resyncing with the running Admin Processes, even if the restarted Admins are not in the initial membership.
    The issue has been resolved.

  • Archive sync can fail to update atoms in large tables (with atom id greater than 5600) resulting in an inconsistency between archives that should be identical. This can occur if the atoms were modified after the syncing SM went down and no records in that part of the table have been read or written since the database started.
    The issue has been resolved.

  • An index statistics version incompatibility issue prevented archives created in NuoDB versions prior to 3.0 from been upgraded to NuoDB 4.2.
    The issue has been resolved.

  • A defect in the implementation to track the 'system schema version' in the MasterCatalog introduced in NuoDB 4.0 can fail to make a new system schema version persistent.
    The issue has been resolved.

  • An assert could occur during a record insert operation if a valid TableFormat descriptor is not present. (11674, 11691)
    The issue has been resolved.

  • In rare cases, a Transaction Engine (TE) may slowly increase memory usage while attempting to update the same record from multiple transactions, and eventually assert with the message, "Unable to free memory for 300 seconds."
    The issue has been resolved.

  • A Storage Manager (SM) could assert during index creation due an issue in a memory allocation call. (11723)
    The issue has been resolved.

  • Non-committed Raft commands are not retried. The issue can occur during network instability events that lead to NuoDB Admin leadership changes that result in potential Raft election timeouts. NuoDB Admin will now retry certain commands and eventually commit them even if there is leadership instability at the time the Raft command was generated.
    The issue has been resolved.

  • It was possible that XML hotcopy status messages may not be parsed correctly and an engine shutdown could be issued as a result. The messages are now processed and logged correctly.
    The issue has been resolved.

  • nuoarchive check may exit without completing due to failed sqlContext precondition (11655)
    The issue has been resolved.

  • The colocated load balancer filter may not function as expected in some cases. (11121,10599)
    The colocated filter will now compare the client remote IP address with the advertised IP address for a Transaction Engine (TE) which is the same IP address shown in the system.nodes table. The special case of "localhost" is also now correctly processed resulting in a local TE returned by the filter if one exists.
    The issue has been resolved.

  • A TE could crash due to a race condition when querying system.connections if another connection passes in a time parameter and both connections try to convert the time parameter. (11561)
    The issue has been resolved.

  • A crash could occur during Index Splitting in the version co-existence phase of a rolling upgrade. For example, the following error could be reported: Detected 'Buffer overrun: Buffer overun' while processing OBJECT. Message is dropped. (11570)
    The issue has been resolved. The serialization format of Index splitting has been made version aware.

  • A TE could run Out Of Memory in executeCall on a system where functions, procedures, or triggers had been ALTERed or DROPped as the old versions were not removed from the cache. (11563)
    The issue has been resolved.

  • A performance degradation could be observed in very specific circumstances when an SM was syncing due to it unnecessarily syncing certain atoms. (11436)
    The issue has been resolved.

  • An assert could be triggered using SELECT access on a VIEW. (11511)
    The issue has been resolved.

  • A client application using the C or C++ driver could exit prematurely on a close connection request. (11514)
    The issue would occur if a connection is closed by a thread other than the one which opened it.
    The issue has been resolved.

  • The nuoarchive command used to exit with exit code 124 (critical error) instead of the correct exit code 125 (Illegal Command) if the user supplied an incorrect storage password.
    The issue has been resolved.

  • The nuoadmin.log file could erroneously report 'NuoDB Admin not ready…​' messages due to an issue polling for the ready message. (11447)
    The issue has been resolved.

  • A network transport error or delay may leave an Admin Process (AP) unable to communicate with its admin peers resulting in the following error message,
    WARN com.nuodb.nraft.swift.pureswift.PureSwiftRaftService singleThrRaft-asyncReq23-thread-1 [server2]ACTIVE: Send one-way AppendResponse notification to server=server4: dead client java.lang.IllegalStateException: connection pool is closing
    The issue has been resolved.

  • It was possible Admin Raft state data could get dropped during a synchronization event when Raft leadership changes on an Admin Process (AP) that has performed Raft log compaction at least once. When this issue occurred, database process metadata is lost from the affected Admin process, and the raftlog file is also much smaller than the raftlog files on the other non-affected hosts.
    The issue has been resolved.

  • A failed process Start ID can be left in the domain state. (11402)
    When an error is generated after a process has been requested but before the process has actually been started, the Start ID could be left in the domain state.
    The issue has been resolved.

  • The handling of config file switches passed via the --config option was not handled properly. (11382)
    The issue has been resolved. In addition, the handling of switches now allows for a value of "true" and "false" to match the behavior of nuocmd.

  • A database process (TE or SM) may disconnect from the NuoDB Admin tier, but remains running.
    This issue may occur if an admin domain process has not yet transitioned to the MONITORED state and the database shutdown command is then issued.
    The issue has been resolved.

  • A database engine process (TE or SM) could fail because another engine failed or was shut down while it was updating or deleting a record. (11409)
    The issue has been resolved.

  • It was possible that the database could become unresponsive while processing several index creation jobs simultaneously. (11724)
    The default priority assigned to index creation jobs has been adjusted to account for this situation.
    The issue has been resolved.

  • It was possible during a database engine failover event that an assert may occur with message ASSERT(*link == NULL); in PlatformTransactionManager::chain at Platform/PlatformTransactionManager.cpp:6349 due to operations inadvertently getting repeated by the Failover manager.
    The issue has been resolved.

  • NuoDB Admin automatically archives the nuoadmin.log file contents once the file size reaches 5MB. The rolling log appender renames all nuoadmin.log.N files, so that nuoadmin.log.1 is always the second most recent log file. It was possible after the log file roll operation completes that certain messages may still get written to an archived log file.
    The issue has been resolved.

  • A database restore from an Admin database capture file that contained exited database processes and/or storage groups would result in a failed restore. (11620)
    The issue has been resolved.

  • When running NuoDB on an IPv6 network, several NuoDB Admin nuocmd commands (including upgrade) may fail due to a misformatted IPv6 address. (11750)
    When this error occurs the following message would result, WARNING: Unable to send request to start ID 0: 'Invalid Host/IP Address Format fd01:7aff:0:1:0:0:0:2d:48006'.
    The issue has been resolved.

  • It was possible for two or more data manipulation SQL statements that run simultaneously, and one of them involves a large table with an index, to interfere with each other resulting in performance degradation when writing to the database archive. (11744)
    The issue has been resolved.

  • Prior to this release, the Windows version of NuoDB did not support using the NuoDB Admin nuocmd command line administration tool. (11712)
    The Windows installation package has been modified to include the required Python modules (and their dependancies) in order to support this capability on Windows.
    The issue has been resolved.

  • It was possible a Storage Manager (SM) may not startup with error message, "Unable to initialize failure detector." (11766)
    Due to a rare timing issue when a database process may get added to the master catalog’s node list, it was possible failure resolution processing may not complete.
    The issue has been resolved.

  • The C and C++ drivers' ResultSet API getString (and variant) methods incorrectly returned an empty string for SQL NULL, instead of a null pointer as documented. (11162)
    The issue has been resolved.

  • A corrupted raft log entry due to an out of disk space condition could cause command fields to be populated incorrectly which may result in an Admin process (AP) startup failure. (11624)
    The issue has been resolved.

  • It was possible a Storage Manager (SM) could assert in PlatformIndex::deserializeIndex() at Platform/PlatformIndex.cpp:786. (11802)
    The issue has been resolved.

  • A Storage Manager (SM) that is running a hotcopy backup job might unexpectedly abort when a table, sequence, or index is dropped. (11847)
    This issue has been resolved.

  • If a STATEMENT trigger is defined on a table, it will be called if DELETE …​ WHERE CURRENT OF is used to delete a row from that table. However, the OLD_TABLE that holds the values just deleted will not be populated correctly – it will contain NULLs instead.
    This issue has been resolved.

  • Using service nuoadmin stop, rather than servicectl stop nuoadmin, on a Red Hat/CentOS system causes the NuoDB Admin process to stop but then restart automatically shortly afterward. (11833)
    This is has been resolved.