Skip to content

3.5.10

Latest

Choose a tag to compare

@yingtingdong yingtingdong released this 15 Dec 08:08
· 2897 commits to main since this release
9848c7f

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_schema to reduce the overhead. #66200
  • Added two histogram metrics (slow_lock_held_time_ms and slow_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_time metrics into separate series for queries and loads, improving observability by workload type. #65535
  • Supported enable_statistic_collect_on_first_load at table granularity for finer-grained control over statistics collection on the first load. #65463
  • Renamed the S3-dependent unit test from PocoClientTest to 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``arehouse field is NULL in information_schema.loads for 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_collector is 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’s timeout 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_count not updating distinct_size after 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 MemoryScratchSinkOperator could remain in pending_finish after RecordBatchQueue was 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
  • In the refresh of an asynchronous materialized view with multi-level partitioned base tables, only the parent partition metadata was checked, while sub-partition updates were skipped. #65596
  • Statistics collection issues where AVG(ARRAY_LENGTH(...)) could return NULL for empty result sets. #65788
  • Runtime profile counters are not correctly updating or clearing their min/max values during incremental updates on both BE and FE. #65869
  • Incorrect logic to obtain the image journal ID when creating a cluster snapshot to ensure the snapshot uses the correct log position. #65970
  • Results are misreported when the cleanup fails due to incorrect status checking logic in file cleanup error handling. #65709
  • A possible infinite loop in certain plans isVariable() in DictMappingOperator. #65743
  • Failures and missing audit/profile data because ConnectContext is not passed into scan-range deployment threads. #63544
  • A use-after-free issue in the local Primary Key index manager when the storage engine is stopped. #65534
  • Statistics collection issues for INSERT OVERWRITE with dynamic overwrite. #65657
  • Concurrency issues caused by coarse-grained locks in DiskAndTabletLoadReBalancer. #65557
  • Slow locks cannot be detected and reported correctly for the lack of slow-lock detection for critical locks. #65559
  • NullPointerException when replaying upsert transaction state after the target database has been dropped. #65595
  • Stale statistics were used because outdated partition statistics are not dropped after statistics collection triggered by INSERT OVERWRITE. #65586
  • Data race in partition ID allocation that could lead to ID conflicts under concurrency. #65608
  • Missing tablet IDs when retrieving initial tablet metadata. #65550
  • Incorrect record information for PREPARE/EXECUTE statements in audit and profile logs. #65448
  • Potential crashes because the non–thread-safe has_output function is called from multiple threads. #65514
  • MemTable finalize tasks cannot be properly tracked because the memtable_finalize_task_total counter metric is lacking. #65548
  • Query ID collisions in Arrow Flight, causing multiple queries no longer share the same query ID. #65558
  • Lock conflicts for TabletChecker.doCheck() with other operations. #65237
  • Scan behavior is inconsistent between shared-data and shared-nothing clusters, causing query semantics to differ. #61100