Kinetica 7.0.4.0 Release Notes

Build version: 7.0.4.0

FIXES:

KINFRA-1085

Add GAIA_DESTRUCTOR_BEGIN/END to KernelExecutionHelper and EGLRenderer

KINFRA-923

Fixed bug in Worker_create_type, not using its own ram pool to initialize its thread contexts -Because of this, when running as a child worker during an add ranks, it was falling back to using its parent worker's ram pool. -This caused an error if the child worker object outlived the parent, which was otherwise ok in this case

KINFRA-301

Fix AvroUtils::compile_schema to throw instead of exit()

KINFRA-1160

Fix quoting in gpudb_sysinfo.sh when showing docker pids

KINFRA-1215

Update worker cancel callback to take a weak_ptr - Prevents JM from extending the lifetime of the worker - Also deleted any debug log statements referencing getRequestMessage which returns null at that point

Fix workers kept alive via job manager - Worker needs to disconnect from cancellation signal prior to dtor, since the dtor is no longer called until after the disconnection. - Fixed segfault in tiered_storage_test; JM::clear needs to be called prior to exiting the tests

KINFRA-923

Remove ReceiverQueue and related code

KINFRA-1160

gpudb kill 0 doesn't ask y/n anymore

KINFRA-1160

gpudb_sysinfo.sh ignores processes in docker in run on host

KINFRA-1196

GaiaZmq hardcode HWM to 10k (default 1k), should be conf param eventually

KINFRA-1215

Fix segfault race cond between JM cancel and Worker destruction - The workers register for cancellation events from JM with a lambda which captured 'this'. If a worker was being destroyed while a cancellation came in for that same jobid it was possible for the callback to reference what had become invalid memory. - Changed the lambda to take a shared_from_this ref. This required changing the worker create_worker method to register for events

KINFRA-923

Remove TaskProcessor and Task framework and misc other dead code

KINFRA-1095

Fix SetIndexedDb::get_object_count_impl() should vect.resize() not reserve() to not fall off vector (this was harmless, but wrong)

KINFRA-923

Fix Migrate communicator_test to worker framework

KINFRA-1120

In sync_replicated_table_internal_response, use long vice int to track inserted record count

KINFRA-923

Convert sync_replicated_table_internal_request to worker framework

KINFRA-1215

Fix unable to cancel join during concurrent failure - Employed double-checked lock to isActive when queuing up pending WI - Fixes bug queuing up pending tasks after exec was shutdown which prevented the - worker from thinking it was complete - Added a flag to the executor to forcefully schedule a WI even if the executor is shutdown - Used to guarantee a job cancellation WI is executed - Added throwIfCancelled to Worker base class

KINFRA-1140

Fixed gpudb_migrate_persist for rebuild table and restore test in test_persist_scripts.py

KINFRA-1140

Remove run_persist_scripts() from test_persist_scripts.py, since failing after changes to gpudb_migrate_persistence.py - will resume after fixing the test/script

KOLAP-1474

Fix create_join_table handleRollback to not rollback on refresh - change aggregate_group_by handleRollback to rollback on refresh when the the table is not a temp table - add tests

Much faster /create/projection for dict (and non-dict columns). -If a projection is going from a source column (not a derived column) and it is not store_only or geometry and it is going to a column that matches it in nullability AND the stencil is all true then we don't use the GPUManager we just do an append_from from the source column to the destination column. - For dict columns it is now much faster to do append_from

Fix computing window functions when forcing replication - we were using the original table as input to the window function rather than the replicated table - modified the code to use m_source_table and m_target_table consistently to try to avoid any confusion in future

Parser related: add between prototypes for all comparable data types - Parser related: add prototypes for new minimize function - FilterPlanner.cpp, BlockStencil.cpp - add information to JoinedStencilDesc and BlockStencil used for between2d filter to keep track of column_name that is between - test_join_between_2d_join.py - add between tests for datatime

Do not return automatic partitions from get_partition_definitions() - this was causing a bug when rebuilding partitioned tables because we pass the result of get_partition_definitions() to the new GaiaSet constructor