Resolved Issues

This section includes fixes that do not change the user interface and/or API behavior of the product. For a summary of changes, see Changes in this release.

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

Resolved in NuoDB 5.1.2

  • A SQL query producing the result of an existential predicate and filtered based on the same predicate could return inaccurate results.
    The issue has been resolved.

  • In some cases, a Storage Manager (SM) could take longer than expected to perform archive sync and have reduced available cache space. (13984, 14027)
    The issue has been resolved.

  • Using the SQL command DROP to delete objects may cause unwanted changes to the contents of the journal and may fail to recover after the SM is stopped and then restarted.
    The issue has been resolved.

  • On a leap day, a SQL query that includes the DATE_TO_STR function with a missing date or time information could report "Could not parse <date string> with pattern <pattern>".
    The issue has been resolved.

  • In some cases, nuocmd get stats would report a too-large value for the ArchiveReadQueueMedium metric.
    The issue has been resolved.

  • When nuoarchive --restore was used to restore the archive to the last transaction using the Point-in-Time Restore method, the SMs could shut down unexpectedly with an Out-of-Memory (OOM) error. (13975)
    The issue has been resolved.

  • When nuocmd get stats was executed, the value of ArchiveSyncThrottleTime was reported in microseconds instead of milliseconds.
    The issue has been resolved.

  • In cases where the v3 optimizer selected to use the Right Hash Outer Join operator, the SQL statement could return inaccurate results.
    The issue has been resolved.

  • Optimizer v2 could return inaccurate results when window functions were used in a subquery that exported the same column twice with different names.
    The issue has been resolved.

  • Issues resolved in Optimizer v3

    • A SQL query that includes an ORDER BY clause and a predicate containing multiple references of the column used in the ORDER BY clause could return results in incorrect order.

    • A SQL query that includes an outer join with an equality predicate and an ORDER BY clause could return results in incorrect order.

    • A SQL query could take longer to execute if a large portion of an index contains the same value. (13883)

    • In some cases, a SQL query that includes a not equal predicate, an existential predicate, and an index that has its first field used in the not equal predicate and the second field in the existential predicate could report "Error 58000: Internal error: failed precondition batchScan". (14044)

    • Execution of SQL statements on a new table, where statistics have not been fully collected, could take longer due to the full table scan used by the optimizer. (13915)

    • Execution of EXPLAIN with the ANALYZE ON parameter on a SQL statement may report "Error 58000: invalid UTF-8 code sequence". (13962)

    • Execution of SQL queries with existential subqueries using [NOT] EXISTS or [NOT] IN (SELECT …​) could take longer to execute when using Optimizer v3. (13974)

    • SQL queries with complex filtering conditions and multiple table joins could take longer to execute when using Optimizer v3. (13971)

    • The Right Index Semi Join operator did not support composite bitmap scans, Bitmap And and Bitmap Or. (13955)

    • SQL queries that include a partitioned table in an OUTER JOIN could sometimes take longer to execute. (14002)

    • A SQL query that includes predicates with a non-boolean return type could produce inaccurate results.

    • In some cases the system may leak memory, which could cause a slowdown due to the reduction in the amount of memory available to cache the working data set. (14069)

    These issues have been resolved.

Resolved in NuoDB 5.1.1

  • In rare cases, an Admin Process (AP) started with a valid NuoDB license could report, "Unable to verify license in <location>: License expired".
    The issue has been resolved.

  • The explain plan of a SQL statement could report inaccurate statistics for the atoms and rows when the corresponding counters have high values.
    The issue has been resolved.

  • Executing SQL statements containing the concatenation string operator (||) in conjunction with CAST could produce inaccurate results.
    The issue has been resolved.

  • When executing a SQL query with range predicates using indexes, if the scale of the boundaries is larger than the scale of the attributes in the table, the query could return inaccurate results.
    The issue has been resolved.

  • When executing a SQL statement with an ORDER BY clause on an expression alias, the query could produce results that are not in the correct order.
    The issue has been resolved.

  • A SQL query that displayed the QUERYSTATS system table, could report inaccurate counters and timer data in the EXPLAIN output.
    The issue has been resolved.

  • The execution of a SQL query that contained a constant equality predicate on a column that was also used in an order by, group by, or window clause, could take longer than expected. (13933)
    The issue has been resolved.

  • During tombstone garbage collection an Admin Process (AP) with a large number of processes and associated data, could shut down unexpectedly with an Out-of-Memory (OOM) error. This error was caused due to garbage collection default values that were set too high. (13431)
    The issue has been resolved.

  • For all SQL Data Manipulation Language (DML) statements, the logging categories sql-statement-metrics and sql-statement-explain-plans would output an empty EXPLAIN.
    The issue has been resolved.

  • When using the READ_COMMITED isolation level and executing multiple SQL statements of type INSERT or TRUNCATE on the same table, statements could abort due to stale locks with the error message, "error: failed precondition tries > 0".
    The issue has been resolved.

  • Issues resolved in Optimizer v3

    • When executing a SQL query with scalar subqueries as parameters of a table function, the order in which the parameters of the table function are considered could be inaccurate producing inaccurate results.

    • Executing a SQL query with scalar subqueries could result in reduced performance. The explain plans could report inaccurate cost estimates for joins with scalar subqueries. (13893)

    • When the optimizer generates an execution plan to access data in partitioned tables, the Transaction Engine (TE) could shut down unexpectedly.

    • A parameterized SQL query could take longer to execute due to the less optimal execution plan selected by the optimizer. (13919,14013)

    • Executing a SQL statement containing the APPROX_COUNT_DISTINCT clause and the GROUP BY clause could report inaccurate results.

    • SQL statements that result in pushing multiple IN lists to a single index access may not explore the entire search space of index access paths and could result in longer processing time. (13910)

    • Executing EXPLAIN (ANALYZE ON) on SQL statements with a Left outer hash join could return inaccurate timing results.

    These issues have been resolved.

Resolved in NuoDB 5.1

  • When connecting to the NuoDB database using a driver, if a schema was not specified, instead of using the default schema USER, the database could report, "SQL error in initialisation; schema=(): explicit or implicit schema required for table <table-name>".
    The issue has been resolved.
    For more information, see Schema Access Levels.

  • When an SG was added to a running SM, the state of the SM could change to the SYNCING state indefinitely. (13564)
    The issue has been resolved.

  • SQL queries with window functions could produce inaccurate results due to explain plan window function predicate omission.
    The issue has been resolved.

  • Executing a SQL statement that includes an aggregate function with arguments that evaluates to NULL could report "Error 58000: Internal error: failed postcondition it != genericTypeArrayMap.end()".
    The issue has been resolved.

  • A SQL query that performs a descending sort operation on a string data type with case-insensitive collation could produce incorrect row ordering.
    The issue has been resolved.

  • If the existential quantifier in a SQL query returned an empty result set, the query returned <null> instead of TRUE or FALSE.
    The issue has been resolved.

  • When a table with a primary key was renamed, the primary key index was not renamed. Creating a new table using the original table name could report "Index named <table_name>..PRIMARY_KEY already exists in schema."
    The issue has been resolved.

  • During daylight saving time, a SQL query that retrieves data with date data type could report "Invalid time <yyyy/mm/dd> 00:00:00". (13656)
    The issue has been resolved.

  • When a table was deleted prior to the start of a cold backup job, the TEs could shut down unexpectedly during the cold backup. (13679, 13674)
    The issue has been resolved.

  • In rare cases, a TE could shut down unexpectedly when a SQL UPDATE command was executed.
    The issue has been resolved.

  • In rare cases, a SQL query with an aggregate function could run indefinitely.
    The issue has been resolved.

  • When the JDBC driver is used, reading Character Large Objects (CLOBS) values that contain multibyte UTF-8 characters may be corrupted. (13739, 13740)
    The issue has been resolved.

Resolved in Previous NuoDB 5.0 Maintenance Releases

  • A Transaction Engine (TE) could shut down unexpectedly when a table is updated. This only occurs if the table previously had an Expression-based index (EBI) created and dropped while running the previously supported Scalar Execution Engine (SEE). (13383, 13484, 13488, 13500, 13561)
    The issue has been resolved.

  • If a Transaction Engine (TE) was started while a Storage Manager (SM) was in the SYNCING state, the TE could take a long time to join the database. (13083)
    The issue has been resolved.

  • When using the AFTER UPDATE trigger, a Transaction Engine (TE) or a Storage Manager (SM) running the legacy Scalar Execution Engine (SEE) could shut down with "transform: Failed to update cipher". (13555, 13558, 13559)
    The issue has been resolved.

  • When the Transparent Data Encryption (TDE) is enabled on an SM, creating or updating a row such that the combined column data length exceeds 2 GB, could cause the database to shut down with "EXITED: Journal Error: Failed to update cipher: Engine connection to admin process closed". (13544)
    The issue has been resolved.
    For example, if a new row with a size exceeding 1.9 GB is inserted, an error is now reported as "width of record being inserted is too large: size of <size_of_the_row> exceeds system limit of 1900000000".
    For more information about data type size limits and recommendations, see SQL String and Character Types.

  • During an extract operation, if the data type or structure of the field does not match the data type or structure of the record in the database, the database could shut down unexpectedly with "ASSERT: Platform/TableRecord.h:132: FAILED: offsets.offsets[position] < length". (13572)
    The issue has been resolved.
    For example, if the data type of the field retrieved from the record does not match the data type of the record, an error is now reported as "Record sequence <record_sequence> is corrupted, and field extraction at position <position> is not possible".

  • A client application request to retrieve the generated keys associated with a multi-statement SQL query execution could report, "Internal error: failed precondition scriptResult.generatedKeys.size() == 1, file <file-name>, line <line-num>". (13582)
    The issue has been resolved.
    A client application request to retrieve the generated keys associated with an unsuccessful multi-statement SQL query execution now reports, "generated keys cannot be returned for multiple statements".

  • Installing NuoDB using the NuoDB EXE Windows installer may report, "Could not locate Python 2.7". (13370)
    For Python version requirements, see Software Requirements.
    The issue has been resolved.

  • Deleting a Storage Group (SG) while the TEs are running could cause the TEs to shut down unexpectedly.
    The issue has been resolved.

  • Executing a SQL query with the REOPTIMIZE ALWAYS hint using nuosql could shut down a TE unexpectedly.
    The issue has been resolved.

  • In a Kubernetes deployment, removing a database using helm uninstall would retain database storage archive metadata which later prevented the database from performing a successful cold start.
    The issue has been resolved.

  • During a database full synchronization operation (for example, during a database upgrade, clone, or restore) the Storage Manager (SM) process could exit with "EXIT:Failed to read an object from disk Index". (13467, 13526, 13611)
    The issue has been resolved.

  • Creating a hot copy of a database with Table Partitions and Storage Groups (TPSGs) using nuodocker backup database --labels or nuocmd hotcopy database --process-filter skipped backing up the SMs that were not in the RUNNING state, resulting in an incomplete hot copy backup.
    The issue has been resolved.

  • A TE could shut down unexpectedly when a SQL query execution triggers explain plan printing and the explain plan contains an index lookup with a specific set of control characters. (13563, 13569, 13570, 13574)
    The issue has been resolved.

  • In certain domain partition scenarios, APs could not establish a stable Raft leader due to transient connectivity failures causing client objects to become unusable for an indefinite period after the connection was restored. (13362)
    The issue has been resolved.

  • When trying to restart the SMs in a staggered fashion, the SMs may not restart because the database could not assign storage group leaders. For example, in a Kubernetes deployment environment, this could occur when one or more SM pods are in the CrashLoopBackOff state.
    The issue has been resolved.

  • Executing nuocmd hotcopy database with the --backup-dirs option reported status:completed before the changes were synchronized to disk.
    The issue has been resolved.

  • An SM or a TE could shut down unexpectedly, reporting "FAILED: BUGCHECK: Unexpected aborted state 'Lost' ". (13413, 13414, 13415)
    The issue has been resolved.

  • Using the ROWNUM() function in a WHERE clause would report "ROWNUM() is not allowed within this context". (13394)
    For more information, see SQL System Information Functions and SELECT.
    The issue has been resolved.

  • An initial redundant optimization step was performed even when the REOPTIMIZE ALWAYS hint was present. (13216)
    The issue has been resolved.

  • A large number of queries on the LASTSTATEMENT System Table could result in an error due to an integer overflow condition.(10772)
    The issue has been resolved.

  • A SQL query on the LASTSTATEMENT System Table would return the wrong result for the COMPILETIME field if query reoptimization occurred.
    The issue has been resolved.

  • A Transaction Engine (TE) or Storage Manager (SM) that sends a large amount of log messages to nuoadmin.log could reduce the database performance or cause an unexpected shutdown with an Out-of-Memory (OOM) error. (13300)
    The issue has been resolved.

  • When scanning a fragmented index with many atoms, a Transaction Engine (TE) could shut down with a Segmentation Violation (SEGV) error. (12245, 13351)
    The issue has been resolved.

    A warning message, "Index <IndexName> is fragmented. Please, rebuild" is now written to the nuoadmin.log every hour while the fragmentation condition remains true.
  • When an Admin Process (AP) configured in the initialMembership was deleted, it could not be restarted without the Raft log file due to the disruption of the Raft leadership among the remaining APs. The restarted AP shuts down automatically with a message that it has been removed from the current domain membership. (13310, 13313)
    The issue has been resolved.

  • Running NuoDB Admin in Java 8 may record the message, "Unable to find Java 9+ MethodHandles.privateLookupIn. Blackbird is not performing optimally!" in nuoadmin.log and resulted in a stack trace.
    The issue has been resolved.

  • When an AP is shut down and restarted, an SM or a TE that was started with TLS network encryption could reconnect to the AP using non-TLS network encryption.
    The issue has been resolved.

  • When using the GENERATED column constraint clause, a table column could be simultaneously specified as a generated column and a computed column.
    The issue has been resolved.

  • Listing the storage groups for a database using nuocmd show storage-group or nuocmd get storage-groups could generate a NullPointerException if invoked concurrently or in rapid succession with updates to the database configuration.
    The issue has been resolved.

  • Attempting to read atoms last updated by NuoDB 3.2 or earlier could report, "Cannot load atom <atom_type>: version not supported (max version (5.0))". (13395)
    The issue has been resolved.

  • A SQL statement with a WHERE clause that resulted in a decimal overflow may select a non-optimal execution plan.
    The issue has been resolved.

  • A SQL query with complex conditional clauses, executed using optimizer v2, resulted in inadequate performance. (13180)
    The issue has been resolved.