This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+14 more
Affected surfaces
Summary
AI summaryBroad release touches Behavior Changes, https://github.com/StarRocks/starrocks/pull/73674, timezone-naive, and https://github.com/StarRocks/starrocks/pull/73498.
Full changelog
4.0.12
Release Date: June 25, 2026
Behavior Changes
- When reading INT64 timestamps from Parquet files written with
isAdjustedToUTC=false(timezone-naive),SELECT FROM FILES()and broker/stream LOAD no longer shift the values by the session timezone offset. Such timestamps are now read as wall-clock values, consistent with Trino, Spark, and Impala. Previously the values drifted whenever the session timezone was not UTC. #73674 - CTAS (
CREATE TABLE AS SELECT) now preserves the declaredVARCHAR(N)length when the source carries an explicit user length (a catalog column reference,CAST AS VARCHAR(N), or a string literal), instead of widening it toVARCHAR(1048576). This keeps the length constraint enforceable and aligns DDL with dbt schema contracts. Materialized view materialization still widens columns as before. #73498 - The Paimon connector now respects the session variable
connector_max_split_sizewhen calculating scan splits, instead of always using the default value, so tuning it now affects Paimon scan parallelism. #71756
Improvements
- Optimized
base64_to_bitmapby folding the conversion at constant-evaluation time for constant inputs. #74684 ngram_searchnow supports a non-constant needle (the search term can be a column expression rather than only a constant). #74675- The Arrow-to-JSON converter now supports
LARGE_LISTandFIXED_SIZE_LISTtypes. #73714 - Added an opt-in option to isolate wide-string columns during statistics collection to reduce memory pressure. #73258
information_schema.COLUMNSnow populates theDATETIME_PRECISIONfield. #74623- Relaxed database read locks to table-scoped intensive locks in
InformationSchemaDataSourceandFrontendServiceImplto improve concurrency. #73936 #73913 - Narrowed database write locks to table-scoped intensive write locks for shared-nothing clusters, and scoped replica row-count updates to the table lock. #74523 #74521
- Moved the routine-load broker RPC out of the per-job write lock to reduce contention. #73591
- Deferred JDBC
REMARKSfetching out of thegetTable()hot path to speed up metadata access for JDBC catalogs. #73488 - Pushed down the
table_namepredicate forinformation_schema.tables_configqueries. #73210 - Skipped per-replica scans on single-medium BEs in
BackendLoadStatistic. #73555 - Added a write timeout to the MySQL channel result send path to prevent stuck connections. #73646
- Added catalog recycle bin size gauge metrics. #74440
- Added vacuum batch-size and retry-count metrics, and added decorrelated jitter to the lake vacuum retry backoff to reduce retry storms. #74112 #74108
- Upgraded third-party dependencies to address security vulnerabilities (CVE): Netty to 4.1.135.Final, Tomcat to 9.0.118, and Thrift to 0.23.0. #74668 #73797 #73625
Bug Fixes
The following issues have been fixed:
- Successfully committed multi-statement transaction stream loads were shown as
PREPARINGforever ininformation_schema.loadsandSHOW STREAM LOAD. #74386 - Rows were silently dropped from
information_schema.loadson clusters whose session timezone differs from Asia/Shanghai, because load times were exchanged as naive wall-clock strings across the BE/FE thrift boundary. #73365 - The
COMMITof an explicit transaction waited onlyquery_timeoutmilliseconds (instead of seconds) for the database write lock due to a unit mismatch. #73549 current_timestamp/now()column defaults were displayed as a frozen literal afterALTER TABLE ... ADD COLUMNand could be lost across FE restarts or edit-log replay. #73455- Querying
sys.fe_memory_usage/sys.fe_lockswithout theOPERATE ON SYSTEMprivilege returned a misleading RPC-failure message instead of a clear access-denied error. #73567 - Automatic per-key Hive partition stats refresh could overload the Hive Metastore for tables with many partitions. #73563
- A null-pointer issue when reading the GTID during a schema change. #74855
- An empty analytic operator was not pruned after pushing down a distinct aggregation. #74810
- Zero row counts could corrupt partition statistics. #74801
- Vector index rewrite could pollute the shared table schema. #74785
- An
IllegalStateExceptionduring parallel profile collection, fixed by making Tracers fork-aware. #74746 - BE vacuum tasks were not aborted once the FE caller's timeout elapsed. #74694
- Partition consumer errors in
ChunksPartitionerwere lost instead of being propagated. #74693 - A lock mismatch in
blockingAddTabletCtxToScheduler. #74596 - A typo in the
azure_adls2_oauth2_client_endpointconfiguration field name. #74581 - Pipeline observers were not notified on missed operator state transitions. #74557
- The reported vacuum watermark was incorrect when retain-boundary metadata was gone. #74429
- A data race on
MaterializedIndexMetaduringupdateSchemaBackendId. #74412 - A non-primary-key replica could get stuck with a permanent version hole; it now self-heals. #74408
- A use-after-free of
LLVMContextwhen JIT compilation fails. #74396 - A column mismatch in the missing-replica row of
ADMIN SHOW REPLICA STATUS. #74393 - Invalid JIT IR generated for
CASE WHENwith mixed float/int WHEN and result types. #74382 - The
CatalogRecycleBinwas frozen when a cluster snapshot kept failing. #74379 - A partial update targeting a table modified earlier in the same explicit transaction is now rejected with a clear error. #74344
- Immutable-partition updates did not use the transaction's compute resource. #74316
- A potential out-of-bounds error caused by partitioned join. #74315
- Database-level UDFs were not restored to the renamed target database for FE followers. #74313
- Non-root compound predicates yielded
EOFinstead ofNotPushDown. #74218 - Table names were not backquoted when persisting the routine load
origStmt. #74188 - An assertion name lookup error in assert-num-rows. #74178
- Aggregation used type-mismatched aggregate functions. #74159
- Force-killed task runs were not archived, and session-prefixed task-run timeouts were not honored. #74146
RENAMEandSWAP(for tables and materialized views) now take the database write lock to avoid concurrent-modification issues. #74100- Composite-rowset stats were not summed when batching op_writes in primary-key multi-statement transactions. #74059
- The sink was not notified when a distinct aggregate source finished. #74055
pipe_file_listwas not recreated when_statistics_was dropped. #73970- A crash in
TabletInvertedIndex.deleteTablets, fixed by fast-path skipping empty input. #73955 - The task manager could write an illegal edit log for a task run. #73882
- A
set_thread_namerace on data directory load threads. #73862 - A race condition in
TabletSinkSender::_send_chunk_by_node. #73820 - Incorrect memory accounting in
OlapTableSink. #73807 - Incorrect connector bytes-read statistics. #73799
BACKUP ON (ALL FUNCTION)/(ALL EXTERNAL CATALOGS)failures. #73790NullableColumnUnaryFunctionlost the decimal scale when all values were null. #73789- A FlatJSON crash when subwriters had no appends. #73730
LargeList/FixedSizeListcould not be converted to a JSON column during broker load. #73718- Partial-append of nested types failed during JSON load. #73715
- An NPE in
StatisticsCalcUtilswhen a partition is dropped concurrently. #73711 - Decimal-valued unit counters were not parsed in
RuntimeProfileParser. #73683 - An NPE during nested materialized view refresh. #73644
- Multi-statement transactions were not handled correctly in lake
publish_log_version. #73423 - An empty
ALTER TABLEclause is now rejected, andOPTIMIZEreplay was improved. #73352 - Disk cache overflow when Iceberg metadata entries are pinned. #71651
Security Fixes
- dep: Netty upgraded to 4.1.135.Final (CVE‑2025‑XXXXX), Tomcat to 9.0.118 (CVE‑2025‑YYYYY), Thrift to 0.23.0 (CVE‑2025‑ZZZZZ)
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About starrocks
The world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.
Related context
Related tools
Beta — feedback welcome: [email protected]