Releases: StarRocks/starrocks
Releases · StarRocks/starrocks
4.0.4
4.0.4
Release Date: January 16, 2026
Improvements
- Supports Parallel Prepare for Operators and Drivers, and single-node batch fragment deployment to improve query scheduling performance. #63956
- Optimized
deltaRowscalculation with lazy evaluation for large partition tables. #66381 - Optimized Flat JSON processing with sequential iteration and improved path derivation. #66941 #66850
- Supports releasing Spill Operator memory earlier to reduce memory usage in group execution. #66669
- Optimized the logic to reduce string comparison overhead. #66570
- Improved skew detection in
GroupByCountDistinctDataSkewEliminateRuleandSkewJoinOptimizeRuleto support histogram and NULL-based strategies. #66640 #67100 - Enhanced Column ownership management in Chunk using Move semantics to reduce Copy-On-Write overhead. #66805
- For shared-data clusters, added FE
TableSchemaServiceand updatedMetaScanNodeto support Fast Schema Evolution v2 schema retrieval. #66142 #66970 - Supports multi-warehouse Backend resource statistics and parallelism (DOP) calculation for better resource isolation. #66632
- Supports configuring Iceberg split size via StarRocks session variable
connector_huge_file_size. #67044 - Supports label-formatted statistics in
QueryDumpDeserializer. #66656 - Added an FE configuration
lake_enable_fullvacuum(Default:false) to allow disabling Full Vacuum in shared-data clusters. #63859 - Upgraded lz4 dependency to v1.10.0. #67045
- Added fallback logic for sample-type cardinality estimation when row count is 0. #65599
- Validated Strict Weak Ordering property for lambda comparator in
array_sort. #66951 - Optimized error messages when fetching external table metadata (Delta/Hive/Hudi/Iceberg) fails, showing root causes. #66916
- Supports dumping pipeline status on query timeout and cancelling with
TIMEOUTstate in FE. #66540 - Displays matched rule index in SQL blacklist error messages. #66618
- Added labels to column statistics in
EXPLAINoutput. #65899 - Filtered out "cancel fragment" logs for normal query completions (for example, LIMIT reached). #66506
- Reduced Backend heartbeat failure logs when the warehouse is suspended. #66733
- Supports
IF EXISTSin theALTER STORAGE VOLUMEsyntax. #66691
Bug Fix
The following issues have been fixed:
- Incorrect
DISTINCTandGROUP BYresults under Low Cardinality optimization due to missingwithLocalShuffle. #66768 - Rewrite error for JSON v2 functions with Lambda expressions. #66550
- Incorrect application of Partition Join in Null-aware Left Anti Join within correlated subqueries. #67038
- Incorrect row count calculation in the Meta Scan rewrite rule. #66852
- Nullable property mismatched in Union Node when rewriting Meta Scan by statistics. #67051
- BE crash caused by optimization logic for Ranking window functions when
PARTITION BYandORDER BYare missing. #67094 - Potential wrong results in Group Execution Join with window functions. #66441
- Incorrect results from
PartitionColumnMinMaxRewriteRuleunder specific filter conditions. #66356 - Incorrect Nullable property deduction in Union operations after aggregation. #65429
- Crash in
percentile_approx_weightedwhen handling compression parameters. #64838 - Crash when spilling with large string encoding. #61495
- Crash triggered by multiple calls to
set_collectorwhen pushing down local TopN. #66199 - Dependency deduction error in LowCardinality rewrite logic. #66795
- Rowset ID leak when rowset commit fails. #66301
- Metacache lock contention. #66637
- Ingestion failure when column-mode partial update is used with conditional update. #66139
- Concurrent import failure caused by Tablet deletion during the ALTER operation. #65396
- Tablet metadata load error due to RocksDB iteration timeout. #65146
- Compression settings were not applied during table creation and Schema Change in shared-data clusters. #65673
- Delete Vector CRC32 compatibility issue during upgrade. #65442
- Status check logic error in file cleanup after clone task failure. #65709
- Abnormal statistics collection logic after
INSERT OVERWRITE. #65327 #65298 #65225 - Foreign Key constraints were lost after FE restart. #66474
- Metadata retrieval error after Warehouse deletion. #66436
- Inaccurate Audit Log scan statistics under high selectivity filters. #66280
- Incorrect query error rate metrics calculation logic. #65891
- Potential MySQL connection leaks when tasks exit. #66829
- BE status was not updated immediately on the SIGSEGV crash. #66212
- NPE during LDAP user login. #65843
- Inaccurate error log when switching users in HTTP SQL requests. #65371
- HTTP context leaks during TCP connection reuse. #65203
- Missing QueryDetail in Profile logs for queries forwarded from Follower. #64395
- Missing Prepare/Execute details in Audit logs. #65448
- Crash caused by HyperLogLog memory allocation failures. #66747
- Issue with the
trimfunction memory reservation. #66477 #66428 - CVE-2025-66566 and CVE-2025-12183. #66453 #66362 #67053
- Race condition in Exec Group driver submission. #66099
- Use-after-free risk in Pipeline countdown. #65940
MemoryScratchSinkOperatorhangs when the queue closes. #66041- Filesystem cache key collision issue. #65823
- Wrong subtask count in
SHOW PROC '/compactions'. #67209 - A unified JSON format is not returned in the Query Profile API. #67077
- Improper
getTableexception handling that affects the materialized view check. #67224 - Inconsistent output of the
Extracolumn from theDESCstatement for native and cloud-native tables. #67238 - Race condition in single-node deployments. #67215
- Log leakage from third-party libraries. #67129
- Incorrect REST Catalog authentication logic that causes authentication failures. #66861
3.4.10
Release Date: January 14, 2026
Security
- LZ4-java dependency has CVE security vulnerabilities (CVE-2025-12183, CVE-2025-66566), potentially affecting system security #66373 #66480
Bug Fixes
The following issues have been fixed:
- In multi-statement submission scenarios, the SQL/stmt information recorded in the Profile may be incorrect, leading to unreliable troubleshooting and performance analysis data #67119
- Java UDF/UDAF parameter conversion may take an abnormal path when the input column is "all NULL and nullable", causing Java heap memory to balloon abnormally and potentially triggering OOM #67105
- When there is no PARTITION BY/GROUP BY and the window function is a ranking type (row_number/rank/dense_rank), the optimizer may generate an invalid execution plan (TOP-N with empty ORDER BY + MERGING-EXCHANGE), causing BE to crash #67085
- After operations like resizing, deserialization, or filtering on Object/JSON columns, the internal pointer cache may still point to old addresses (dangling pointers), returning nullptr when reading object values and causing segmentation faults/data corruption #66990
- trim() may trigger vector out-of-bounds operations (e.g., underflow on empty slices) with specific Unicode whitespace characters/boundary inputs, causing BE internal errors or crashes #66484
- trim() has improper buffer reservation length calculation, potentially causing insufficient reservation and frequent expansions, triggering exception paths and leading to BE internal errors in severe cases #66489
- After table value function rewrite (bitmap_to_array → unnest_bitmap), the projection column type may be incorrectly inferred (bitmap mistaken as array), leading to type inconsistency risks in subsequent plans/execution #66986
- When BE triggers crash handling on fatal signals (e.g., SIGSEGV), the heartbeat service may still briefly return success, causing FE to mistakenly believe the BE is alive (until heartbeat timeout), potentially scheduling queries to the crashed node during this period #66250
- Race condition exists between initial submission and dynamic driver addition (submit_next_driver) in Execution Groups, potentially causing "driver already blocked yet added to schedule" assertion failures and BE crashes #66111
- When pushing down DISTINCT + LIMIT predicates, the global LIMIT may be incorrectly applied before the Exchange node, causing data to be truncated prematurely and result sets to miss some rows #66129
- When using ExecutionGroup (group execution) mode, if JOIN is followed by window functions, data may be out of order or duplicated, leading to incorrect results #66458
- In audit logs/query statistics, statistics like scan row count may be missing or inaccurate in some high-selectivity filtering scenarios, causing monitoring and troubleshooting information to be distorted #66422
- When CASE-WHEN nesting is deep and each layer has many branches, the expression tree node count may explode exponentially, causing FE OOM #66379
- percentile_approx_weighted function may access the wrong parameter position when obtaining the compression factor from const parameters, causing BE crashes #65217
- During BE startup when loading tablet metadata, if RocksDB iteration times out, it may discard already-loaded tablets and retry from the beginning; in cross-disk migration scenarios, this may lead to version loss #65445 #65427
- Stream Load may fail during transaction commit due to invalid tablet references (e.g., deleted during ALTER) #65986
- When rowset commit/compaction commit fails on primary key (PK) tables, the rowset ID is not released, causing files to not be garbage-collected and disk space to leak #66336
- DELETE statements during partition pruning may attempt MV rewrite preparation, potentially blocking or failing DELETE due to table lock order or deadlock issues #65818 #65820
- When the same table is referenced multiple times in a query, scan nodes may concurrently allocate partition IDs, potentially causing ID conflicts and partition mapping confusion, leading to incorrect query results #65608
- When column-mode partial update is used together with conditional update, imports may fail with "invalid rssid" errors #66217
- When concurrent transactions create temporary partitions with the same partition values but different transaction IDs, "Duplicate values" errors may cause automatic partition creation to fail #66203 #66398
- Clone task checks the wrong status variable during cleanup after _finish_clone_primary failure, potentially preventing cleanup logic from executing correctly #65765
- When DROP and CLONE tasks execute concurrently on the same tablet, the only replica may be deleted by DROP, causing query failures #66271
- In spill scenarios, very large string encoding may cause BE crashes due to buffer reservation errors or type overflows #65373
- When using CACHE SELECT functionality, if column iterators are not properly seeked or schema is incorrectly reordered, assertion failures or data confusion may occur, causing BE crashes #66276
- External table (file format schema detection) sampling scans may experience range index out-of-bounds, causing BE crashes or reading incorrect data #65931
- When materialized views are based on VIEW + JOIN scenarios and the VIEW name matches a base table name (but in different databases), partition expression parsing may fail, causing MV creation errors #66315
- When materialized views refresh on multi-level partitioned base tables, only parent partition metadata (ID/Version) is checked, not sub-partition changes, causing MV not to refresh after sub-partition data updates #66108
- After Iceberg table snapshot expiration, partition last_updated_at may be null, causing MVs depending on that table to fail to track partition changes correctly and skip MV refreshes #66044
- When queries contain the same table multiple times with different partition predicates, MV compensation (MVCompensation) may confuse partition information, leading to incorrect rewrites #66416
- Text-based MV rewrite after AST cache hits does not refresh MV metadata, potentially using outdated tablet information and causing query failures or data inconsistencies #66583
- Low cardinality optimization has bugs in disabled column propagation logic, potentially causing incorrect column disabling and wrong query results #66771
- PRIMARY KEY tables with low cardinality optimization enabled may crash or produce incorrect data due to incompatible global dictionary collection logic #66739
- Nested CTEs with partial inlining and partial reuse scenarios may have overly strict optimizer checks, rejecting valid plans #66703
- After merging UNION to constants (VALUES), output column nullability may be incorrectly set, causing downstream operators to crash or produce incorrect results #65454
- Partition column min/max rewrite optimization may generate invalid TOP-N in scenarios without partition-by/order-by, causing BE crashes or incorrect results #66498
- Non-deterministic functions (e.g., now()) are incorrectly pushed down to lower operators, potentially causing results to be inconsistent across different operators/shards #66391
- Foreign key constraints are lost after FE restart because MaterializedView. onCreate() does not trigger constraint rebuilding and registration #66615
- When materialized views contain colocate_with property, metadata is not written to EditLog, causing follower FE to be unaware of colocate relationships and query performance degradation #65840 #65405
- After Warehouse deletio...
3.5.11
Improvements
- Supports Arrow Flight data retrieval from inaccessible nodes. #66348
- Logs the cause (including the triggering process information) in the SIGTERM handler. #66737
- Added an FE configuration
enable_statistic_collect_on_updateto control whether UPDATE statements can trigger automatic statistics collection. #66794 - Supports configuring
networkaddress.cache.ttl. #66723 - Improve the “no rows imported” error message. #66624 #66535
- Optimized
deltaRowswith lazy evaluation for large partition tables. #66381 - Optimized materialized view rewrite performance. #66623
- Supports single-tablet
ResultSinkoptimization in shared-data clusters. #66517 rewrite``_``simple``_``agg``_``to``_``meta``_``scanis enabled by default. #64698- Supports pushing down GROUP BY expressions and materialized view rewrite. #66507
- Add overloaded
newMessagemethods to improve materialized view logs. #66367
Bug Fixes
The following issues have been fixed:
- A Publish Compaction crash when the input rowset is not found. #67154
- Significant CPU overhead and lock contention caused by repetitive invocation of
update_segment_cache_sizewhen querying tables with a large number of columns. #66714 MulticastSinkOperatorstuck in theOUTPUT_FULLstate. #67153- A “column not found” issue in the skew join hint. #66929
- The growth of all tablets continues unabated, and the sum of pending and running tablets is not the total number of tablets. #66718
- Transactions in the Compaction map built during Leader startup cannot be accessed by CompactionScheduler and will never be removed from the map. #66533
- Delta Lake table refresh does not take effect. #67156
- CN crash at queries against non-partitioned Iceberg tables with DATE predicates. #66864
- Statements in Profiles cannot be correctly displayed when multiple statements are submitted. #67097
- Missing dictionary information during collection because Meta Reader does not support reading from Delta column group files. #66995
- Potential Java heap OOM in Java UDAF. #67025
- BE crash due to the incorrect logic of ranking window optimization without PARTITION BY and ORDER BY. #67081
- Misleading log level for timezone cache miss. #66817
- Crash and incorrect results caused by the incorrect
can_use_bfchecking when merging runtime filters. #67021 - Issue about pushing down runtime bitset filter with other OR predicates. #66996
- Patch critical fix from lz4. #67053
- AsyncTaskQueue deadlock issue. #66791
- Cache inconsistency in ObjectColumn. #66957
- RewriteUnnestBitmapRule causes wrong output column types. #66855
- Data races and data loss when there are WRITE or FLUSH tasks after FINISH tasks in the Delta Writer. #66943
- Invalid load channel and misleading internal errors caused by reopened load channels that were previously aborted. #66793
- Bugs of Arrow Flight SQL. #65889
- Issues when querying renamed columns with MetaScan. #66819
- Hash column is not removed before flushing chunk in partitionwise spillable aggregation when skew elimination is off. #66839
- BOOLEAN type default values were not correctly handled when stored as string literals. #66818
- decimal2decimal cast unexpectedly returns the input column as the result directly. #66773
- NPE in query planning during schema change. #66811
- LocalTabletsChannel and LakeTabletsChannel deadlock. #66748
publish_versionlog shows emptytxn_idswith new FE. #66732- Incorrect behavior of the FE configuration
statistic_collect_query_timeout. #66363 - UPDATE statements do not support statistics collection. #66443
- Case rewrite errors related to low cardinality. #66724
- Statistics query failure when the column list is empty. #66138
- Usage/record mismatch when switching warehouse via hint. #66677
ANALYZE TABLEstatements lack ExecTimeout. #66361array_mapreturns wrong results from constant unary expressions. #66514- Foreign key constraints are lost after FE restart. #66474
max(not null string)on empty table throwsstd::length_error. #66554- Concurrency issue between Primary Key index Compaction and Apply. #66282
- Improper behavior of
EXPLAIN <query>. #66542 - Issue when sinking DECIMAL128 to Iceberg table column. #66071
- JSON length check issue for JSON → CHAR/VARCHAR when the target length equals the minimum. #66628
- An expression children count error. #66511
4.0.3
Release Date: December 25, 2025
Downgrade Notes
Before downgrading clusters from v4.0.3 to v3.5.0~v3.5.10, execute the following statement:
SET GLOBAL enable_rewrite_simple_agg_to_meta_scan=false;Improvements
- Supports
ORDER BYclauses for STRUCT data types #66035 - Supports creating Iceberg views with properties and displaying properties in the output of
SHOW CREATE VIEW. #65938 - Supports altering Iceberg table partition specs using
ALTER TABLE ADD/DROP PARTITION COLUMN. #65922 - Supports
COUNT/SUM/AVG(DISTINCT)aggregation over framed windows (for example,ORDER BY/PARTITION BY) with optimization options. #65815 - Optimized CSV parsing performance by using
memchrfor single-character delimiters. #63715 - Added an optimizer rule to push down Partial TopN to the Pre-Aggregation phase to reduce network overhead. #61497
- Enhanced Data Cache monitoring
- Optimized Sort and Aggregation operators to support rapid memory release in OOM scenarios. #66157
- Added
TableSchemaServicein FE for shared-data clusters to allow CNs to fetch specific schemas on demand. #66142 - Optimized Fast Schema Evolution to retain history schemas until all dependent ingestion jobs are finished. #65799
- Enhanced
filterPartitionsByTTLto properly handle NULL partition values to prevent all partitions from being filtered. #65923 - Optimized
FusedMultiDistinctStateto clear the associated MemPool upon reset. #66073 - Made
ICEBERG_CATALOG_SECURITYproperty check case-insensitive in Iceberg REST Catalog. #66028 - Added HTTP endpoint
GET /service_idto retrieve StarOS Service ID in shared-data clusters. #65816 - Replaced deprecated
metadata.broker.listwithbootstrap.serversin Kafka consumer configurations. #65437 - Added FE configuration
lake_enable_fullvacuum(Default: false) to allow disabling the Full Vacuum Daemon. #66685 - Updated lz4 library to v1.10.0. #67080
Bug Fixes
The following issues have been fixed:
latest_cached_tablet_metadatacould cause versions to be incorrectly skipped during batch Publish. #66558- Potential issues caused by
ClusterSnapshotrelative checks inCatalogRecycleBinwhen running in shared-nothing clusters. #66501 - BE crash when writing complex data types (ARRAY/MAP/STRUCT) to Iceberg tables during Spill operations. #66209
- Potential hang in Connector Chunk Sink when the writer's initialization or initial write fails. #65951
- Connector Chunk Sink bug where
PartitionChunkWriterinitialization failure caused a null pointer dereference during close. #66097 - Setting a non-existent system variable would silently succeed instead of reporting an error. #66022
- Bundle metadata parsing failure when Data Cache is corrupted. #66021
- MetaScan returned NULL instead of 0 for count columns when the result is empty. #66010
SHOW VERBOSE RESOURCE GROUP ALLdisplays NULL instead ofdefault_mem_poolfor resource groups created in earlier versions. #65982- A
RuntimeExceptionduring query execution after disabling theflat_jsontable configuration. #65921 - Type mismatch issue in shared-data clusters caused by rewriting
min/maxstatistics to MetaScan after Schema Change. #65911 - BE crash caused by ranking window optimization when
PARTITION BYandORDER BYare missing. #67093 - Incorrect
can_use_bfcheck when merging runtime filters, which could lead to wrong results or crashes. #67062 - Pushing down runtime bitset filters into nested OR predicates causes incorrect results. #67061
- Potential data race and data loss issues caused by write or flush operations after the DeltaWriter has finished. #66966
- Execution error caused by mismatched nullable properties when rewriting simple aggregation to MetaScan. #67068
- Incorrect row count calculation in the MetaScan rewrite rule. #66967
- Versions might be incorrectly skipped during batch Publish due to inconsistent cached tablet metadata. #66575
- Improper error handling for memory allocation failures in HyperLogLog operations. #66827
3.3.21
Release Date: December 25, 2025
Bug Fixes
The following issues have been fixed:
- Logic errors when the
trimfunction handles specific Unicode whitespace characters (for example,\u1680) and performance issues caused by reserved memory calculation. #66428 #66477 - Foreign key constraints are lost after FE restart due to table loading order. #66474
- Security vulnerabilities CVE-2025-66566 and CVE-2025-12183 in
lz4-java, and potential crashes in upstream. #66453 #66362 #67075 - Incorrect results when Join is used with window functions in Group Execution mode. #66441
- System continues attempting to fetch metadata for a deleted warehouse, causing
SHOW LOADor SQL execution failures. #66436 PartitionColumnMinMaxRewriteRuleoptimization incorrectly returns an empty set instead of NULL when the Scan input for aggregation is fully filtered. #66356- Rowset IDs are not properly released when Rowset Commit or Compaction fails, preventing disk space reclamation. #66301
- Missing scan statistics (for example, scanned rows/bytes) in audit logs when a high-selectivity filter causes the Scan to end early (EOS). #66280
- BE continues to respond to heartbeats as Alive after entering the crash handling process (for example, SIGSEGV), causing the FE to continue dispatching queries and reporting errors #66212
- BE crash caused by multiple calls to
set_collectorof the Runtime Filter due to Local TopN pushdown optimization. #66199 - Load task failures caused by un-initialized
rssidwhen column-mode Partial Update is used with Conditional Update. #66139 - Race condition when submitting drivers in Colocate Execution Group, leading to BE crashes. #66099
MemoryScratchSinkOperatorremains in a pending state and cannot be cancelled afterRecordBatchQueueis closed (For example, triggered by SparkSQL Limit), causing queries to hang. #66041- Use-after-free issue caused by a race condition when accessing
_num_pipelinesin theExecutionGroupcountdown logic. #65940 - Incorrect calculation logic for query error rate monitoring metrics (Internal/Analysis/Timeout error rate), resulting in negative values. #65891
- Null Pointer Exception (NPE) caused by unset
ConnectContextwhen executing tasks as an LDAP user. #65843 - Performance issues where Filesystem Cache lookups for the same Key fail because object reference comparison is used instead of value comparison. #65823
- Tablet-related files are not correctly cleaned up after a snapshot load failure due to incorrect status variable checking. #65709
- Compression type and level configured in FE are not correctly propagated to BE or persisted during table creation or Schema Change, resulting in default compression settings. #65673
COM_STMT_EXECUTEhas no audit logs by default, and Profile information is incorrectly merged into the Prepare stage. #65448- Delete Vector CRC32 check failures during cluster upgrade/downgrade scenarios due to version incompatibility. #65442
- BE crash caused by improper handling of Nullable properties when
UnionConstSourceOperatormerges Union to Values. #65429 - Concurrent load tasks fail during the Commit phase if the target tablet is dropped during an ALTER TABLE operation. #65396
- Inaccurate error log information when authentication fails due to incorrect context setting if users are switched in the HTTP SQL interface. #65371
- Statistics collection issues after
INSERT OVERWRITE, including failure to collect statistics for temporary partitions and inaccurate row count statistics at transaction commit preventing collection trigger. #65327, #65298, #65225 HttpConnectContextrelated to SQL is not released in TCP connection reuse scenarios because subsequent non-SQL HTTP requests overwrite the context. #65203- Potential version loss caused by incomplete tablet loading when RocksDB iteration times out during BE startup metadata loading. #65146
- BE crash caused by out-of-bounds access when processing compression parameters in the
percentile_approx_weightedfunction. #64838 - Missing Query Profile logs for queries forwarded from Follower to Leader. #64395
- BE crash caused by lax size checks during LZ4 encoding of large string columns during spilling. #61495
MERGING-EXCHANGEoperator crash caused by Ranking window function optimization generating an emptyORDER BYwhen there is noPARTITION BYandGROUP BY. #67081- Unstable results or errors in the Low Cardinality column rewrite logic due to dependence on the Set iteration order. #66724
3.5.10
Release date: December 15, 2025
Improvements
- Supports dumping plan node IDs in BE crash logs to speed up locating problematic operators. #66454
- Optimized scans on the system views in
information_schemato reduce the overhead. #66200 - Added two histogram metrics (
slow_lock_held_time_msandslow_lock_wait_time_ms) to provide better observability for slow lock scenarios and distinguish between long-held locks and high lock contention. #66027 - Optimized replica lock handling in tablet report and clone flows by switching the lock from database level to table level, reducing lock contention and improving scheduling efficiency. #61939
- Avoided outputting columns in BE storage, and pushed down predicate computation to BE storage. #60462
- Improved query profile accuracy when deploying scan ranges in background threads. #62223
- Improved profile accounting when deploying additional tasks, so CPU time is not repetitively counted. #62186
- Added more detailed error messages when a referenced partition does not exist, making failures easier to diagnose. #65674
- Made sample-type cardinality estimation more robust in corner cases to improve row-count estimates. #65599
- Added a partition filter when loading statistics to prevent INSERT OVERWRITE from reading stale partition statistics. #65578
- Splited pipeline CPU
execution_timemetrics into separate series for queries and loads, improving observability by workload type. #65535 - Supported
enable_statistic_collect_on_first_loadat table granularity for finer-grained control over statistics collection on the first load. #65463 - Renamed the S3-dependent unit test from
PocoClientTestto an S3-specific name to better reflect its dependency and intent. #65524
Bug Fixes
The following issues have been fixed:
- libhdfs crashes when StarRocks is started with an incompatible JDK. #65882
- Incorrect query results caused by
PartitionColumnMinMaxRewriteRule. #66356 - Rewrite issues due to the materialized view metadata not refreshed when resolving materialized views by AST keys. #66472
- The trim function crashes or produces wrong results when trimming specific Unicode whitespace characters. #66428, #66477
- Failures in load metadata and SQL execution that still referenced a deleted warehouse. #66436
- Wrong results when group execution Join is combined with window functions. #66441
- A possible FE null pointer in
resetDecommStatForSingleReplicaTabletUnlocked. #66034 - Missing Join runtime filter pushdown optimization in shared-data clusters for
LakeDataSource. #66354 - Parameters are inconsistent for runtime filter transmit options (timeouts, HTTP RPC limits, etc.) because they are not forwarded to receivers. #66393
- Automatic partition creation fails when partition values already exist. #66167
- Inaccurate scan statistics in audit logs when predicates have high selectivity. #66280
- Incorrect query results because non-deterministic functions are pushed below operators. #66323
- Exponential growth in the number of expressions caused by CASE WHEN. #66324
- Materialized view compensation bugs when the same table appears multiple times in a query with different partition predicates. #66369
- BE becomes unresponsive when using fork in subprocesses. #66334
- CVE-2025-66566 and CVE-2025-12183. #66453, #66362
- Errors caused by nested CTE reuse. #65800
- Issues due to the lack of validation on conflicting schema-change clauses. #66208
- Improper rowset GC behavior when rowset commit fails. #66301
- A potential use-after-free when counting down pipelines. #65940
- The
W``arehousefield is NULL ininformation_schema.loadsfor Stream Load. #66202 - Issues with materialized view creation when the referenced view has the same name as its base table. #66274
- The global dictionary is not updated correctly under some cases. #66194
- Incorrect query profile logging for queries forwarded from Follower nodes. #64395
- BE crash when caching SELECT results and reordering schema. #65850
- Shadow partitions are dropped when dropping partitions by expression. #66171
- DROP tasks run when a CLONE task exists for the same tablet. #65780
- Stability and observability issues because RocksDB log file options were not properly set. #66166
- Incorrect materialized view compensation that could produce NULL results. #66216
- BE reported as alive even after receiving
SIGSEGV. #66212 - Bugs in Iceberg scans. #65658
- Regression coverage and stability issues for Iceberg view SQL test cases. #66126
- Unexpected behavior because
set_collectoris invoked repetitively. #66199 - Ingestion failures when column-mode partial updates are used together with conditional updates. #66139
- Temporary partition value conflicts under concurrent transactions. #66025
- An Iceberg table cache bug where Guava LocalCache could retain stale entries even when
cache.size() == 0, causing refresh to be ineffective and queries to return outdated tables. #65917 - Incorrect format placeholder in
LargeInPredicateException, causing the actual number of LargeInPredicate occurrences to be incorrectly reported in the error message. #66152 - NullPointerException in
ConnectScheduler’stimeout checker when connectContext is null. #66136 - Crashes caused by unhandled exceptions thrown from threadpool tasks. #66114
- Data loss when pushing down DISTINCT LIMIT in certain plans. #66109
multi_distinct_countnot updatingdistinct_sizeafter the underlying hash set is converted to a two-level hash set, which could lead to incorrect distinct counts. #65916- A race condition when an exec group submits the next driver which could trigger
Check failed: !driver->is_in_blocked()and abort the BE process. #66099 - INSERT failures when running ALTER TABLE ADD COLUMN with a default value concurrently with INSERT, due to mismatched types for the newly added column’s default expression. #65968
- An issue where
MemoryScratchSinkOperatorcould remain inpending_finishafterRecordBatchQueuewas shut down when SparkSQL exited early, causing the pipeline to hang. #66041 - A core dump when reading Parquet files that contain empty row groups. #65928
- Recursive calls and potential stack overflow at high DOP because the event scheduler’s readiness check is complicated. #66016
- Asynchronous materialized view refresh skips updates when the Iceberg base table contains expired snapshots. #65969
- Potential issues in predicate reuse and rewrite because the optimizer relies solely on hashCode to distinguish differences in predicates. [#65999](https://github.com/...
4.0.2
4.0.2
Release Date: December 4, 2025
New Features
- Introduced a new resource group attribute,
mem_pool, allowing multiple resource groups to share the same memory pool and enforce a joint memory limit for the pool. This feature is backward compatible.default_mem_poolis used ifmem_poolis not specified. #64112
Improvements
- Reduced remote storage access during Vacuum after File Bundling is enabled. #65793
- The File Bundling feature caches the latest tablet metadata. #65640
- Improved safety and stability for long-string scenarios. #65433 #65148
- Optimized the
SplitTopNAggregateRulelogic to avoid performance regression. #65478 - Applied the Iceberg/DeltaLake table statistics collection strategy to other external data sources to avoid collecting statistics when the table is a single table. #65430
- Added Page Cache metrics to the Data Cache HTTP API
api/datacache/app_stat. #65341 - Supports ORC file splitting to enable parallel scanning of a single large ORC file. #65188
- Added selectivity estimation for IF predicates in the optimizer. #64962
- Supports constant evaluation of
hour,minute, andsecondforDATEandDATETIMEtypes in the FE. #64953 - Enabled rewrite of simple aggregation to MetaScan by default. #64698
- Improved multiple-replica assignment handling in shared-data clusters for enhanced reliability. #64245
- Exposes cache hit ratio in audit logs and metrics. #63964
- Estimates per-bucket distinct counts for histograms using HyperLogLog or sampling to provide more accurate NDV for predicates and joins. #58516
- Supports FULL OUTER JOIN USING with SQL-standard semantics. #65122
- Prints memory information when Optimizer times out for diagnostics. #65206
Bug Fixes
The following issues have been fixed:
- DECIMAL56
mod-related issue. #65795 - Issue related to Iceberg scan range handling. #65658
- MetaScan rewrite issues on temporary partitions and random buckets. #65617
JsonPathRewriteRuleuses the wrong table after transparent materialized view rewrite. #65597- Materialized view refresh failures when
partition_retention_conditionreferenced generated columns. #65575 - Iceberg min/max value typing issue. #65551
- Issue with queries against
information_schema.tablesandviewsacross different databases whenenable_evaluate_schema_scan_ruleis set totrue. #65533 - Integer overflow in JSON array comparison. #64981
- MySQL Reader does not support SSL. #65291
- ARM build issue caused by SVE build incompatibility. #65268
- Queries based on bucket-aware execution may get stuck for bucketed Iceberg tables. #65261
- Robust error propagation and memory safety issues for the lack of memory limit checks in OLAP table scan. #65131
Behavior Changes
3.5.9
Improvements
- Added transaction latency metrics to FE for observing timing across transaction stages. #64948
- Supports overwriting S3 unpartitioned Hive tables to simplify full-table rewrites in data lake scenarios. #65340
- Introduced CacheOptions to provide finer-grained control over tablet metadata caching. #65222
- Supports sample statistics collection for INSERT OVERWRITE to ensure statistics stay consistent with the latest data. #65363
- Optimized the statistics collection strategy after INSERT OVERWRITE to avoid missing or incorrect statistics due to asynchronous tablet reports. #65327
- Introduced a retention period for partitions dropped or replaced by INSERT OVERWRITE or materialized view refresh operations, keeping them in the recycle bin for a while to improve recoverability. #64779
Bug Fixes
The following issues have been fixed:
- Lock contention and concurrency issues related to
LocalMetastore.truncateTable(). #65191 - Lock contention and replica check performance issues related to TabletChecker. #65312
- Incorrect error logging when changing user via HTTP SQL. #65371
- Checksum failures caused by DelVec CRC32 upgrade compatibility issues. #65442
- Tablet metadata load failures caused by RocksDB iteration timeout. #65146
- When the internal
flat_pathstring is empty because the JSON hyper extraction path is$or all paths are skipped, callingsubstrwill throw an exception and cause BE crash. #65260 - The PREPARED flag in fragment execution is not correctly set. #65423
- Inaccurate write and flush metrics caused by duplicated load profile counters. #65252
- When multiple HTTP requests reuse the same TCP connection, if a non‑ExecuteSQL request arrives after an ExecuteSQL request, the
HttpConnectContextcannot be unregistered at channel close, causing HTTP context leaks. #65203 - MySQL 8.0 schema introspection errors (Fixed by adding session variables
default_authentication_pluginandauthentication_policy). #65330 - SHOW ANALYZE STATUS errors caused by unnecessary statistics collection for temporary partitions created after partition overwrite operations. #65298
- Global Runtime Filter race in the Event Scheduler. #65200
- Data Cache is aggressively disabled because the minimum Data Cache disk size constraint is too large. #64909
- An aarch64 build issue related to the
goldlinker automatic fallback. #65156
3.4.9
Release Date: November 24, 2025
Behavior Changes
- Changed the return type of
json_extractin the Trino dialect from STRING to JSON. This may cause incompatibility in CAST, UNNEST, and type check logic. #59718 - The metric that reports “connections per user” under
/metricsnow requires admin authentication. Without authentication, only total connection counts are exposed, preventing information leakage of all usernames via metrics. #64635 - Removed the deprecated system variable
analyze_mv. Materialized view refresh no longer automatically triggers ANALYZE jobs, avoiding large numbers of background statistics tasks. This changes expectations for users relying on legacy behavior. #64863 - Changed the overflow detection logic of casting from LARGEINT to DECIMAL128 on x86.
INT128_MIN * 1is no longer considered an overflow to ensure consistent casting semantics for extreme values. #63559 - Added a configurable table-level lock timeout to
finishTransaction. If a table lock cannot be acquired within the timeout, finishing the transaction will fail for this round and be retried later, rather than blocking indefinitely. The final result is unchanged, but the lock behavior is more explicit. #63981
Bug Fixes
The following issues have been fixed:
- During BE start, if loading tablet metadata from RocksDB times out, RocksDB may restart loading from the beginning and accidentally pick up stale tablet entries, risking data version loss. #65146
- Data corruption issues related to CRC32C checksum for delete-vectors of Lake Primary Key tables. #65006 #65354 #65442 #65354
- When the internal
flat_pathstring is empty because the JSON hyper extraction path is$or all paths are skipped, callingsubstrwill throw an exception and cause BE crash. #65260 - When spilling large strings to disk, insufficient length checks, using 32‑bit attachment sizes, and issues in the BlockReader could cause crashes. #65373
- When multiple HTTP requests reuse the same TCP connection, if a non‑ExecuteSQL request arrives after an ExecuteSQL request, the
HttpConnectContextcannot be unregistered at channel close, causing HTTP context leaks. #65203 - Primitive value loss issue under certain circumstances when JSON data is being flattened. #64939 #64703
- Crash in
ChunkAccumulatorwhen chunks are appended with incompatible JSON schemas. #64894 - In
AsyncFlushOutputStream, asynchronous I/O tasks may attempt to access a destroyedMemTracker, resulting in use‑after‑free crashes. #64735 - Concurrent Compaction tasks against the same Lake Primary Key table lack integrity checks, which could leave metadata in an inconsistent state after a failed publish. #65005
- When spilling Hash Joins, if the build side’s
set_finishingtask failed, it only recorded the status in the spiller, allowing the Probe side to continue, and eventually causing a crash or an indefinite loop. #65027 - During tablet migration, if the only newest replica is marked as DECOMMISSION, the version of the target replica is outdated and stuck at VERSION_INCOMPLETE. #62942
- Use-after-free issue because the relevant Block Group is not released when
PartitionedSpillerWriteris removing partitions. #63903 #63825 - BE crash caused by MorselQueue's failure to get splits. #62753
- In shared-data clusters, Sorted-by-key Scans with multiple I/O tasks could produce wrong results in sort-based aggregations. #63849
- On ARM, reading Parquet columns for certain Hive external tables could crash in LZ4 conversion when copying NULL bitmaps because the destination null buffer pointer was stale due to out-of-order execution. #63294
3.3.20
3.3.20
Release Date: November 18, 2025
Bug Fixes
The following issues have been fixed:
- CVE-2024-47561. #64193
- CVE-2025-59419. #64142
- Incorrect row count for lake Primary Key tables. #64007
- Window function with IGNORE NULLS flags can not be consolidated with its counterpart without IGNORE NULLS flag. #63958
- ASAN error in
PartitionedSpillerWriter::_remove_partition. #63903 - Wrong results for sorted aggregation in shared-data clusters. #63849
- NPE when creating a partitioned materialized view. #63830
- Partitioned Spill crash when removing partitions. #63825
- NPE when removing expired load jobs in FE. #63820
- A potential deadlock during initialization of
ExceptionStackContext. #63776 - Degraded scan performance caused by the profitless simplification of CASE WHEN with complex functions. #63732
- Materialized view rewrite failures caused by type mismatch. #63659
- Materialized view rewrite throws
IllegalStateExceptionunder certain plans. #63655 - LZ4 compression and decompression errors cannot be perceived. #63629
- Stability issue caused by incorrect overflow detection when casting LARGEINT to DECIMAL128 at sign-edge cases (for example, INT128_MIN) #63559
date_truncpartition pruning with combined predicates that mistakenly produced EMPTYSET. #63464- Incomplete
Left Joinresults caused by ARRAY low-cardinality optimization. #63419 - An issue caused by the aggregate intermediate type uses
ARRAY<NULL_TYPE>. #63371 - Metadata inconsistency in partial updates based on auto-increment columns. #63370
- Incompatible Bitmap index reuse for Fast Schema Evolution in shared-data clusters. #63315
- Unnecessary CN deregistration during pod restart/upgrade. #63085
- Profiles showing SQL as
omitfor returns of the PREPARE/EXECUTE statements. #62988