Release date: 2026-08-17
| Release type | Recommended for |
|---|---|
| Maintenance release | Users of stream processing, taosX backup and synchronization, or a multi-replica mnode upgraded from v3.3
|
1. Highlights
- Stream processing adds observability. System tables in
information_schemashow latency, throughput, historical fill, and recalculation progress. - Stream processing supports federated query of an external source, including InfluxDB.
- taosExplorer can start, stop, and recalculate a stream task on the page.
- taosdump can choose the backup scope by content. The default handles only basic data. Virtual tables, streams, and subscriptions must be selected explicitly.
- The number of stream Runner deployment groups and replicas can be configured.
- RPC adds a CRC check switch. An x86 client uses hardware CRC. The check can be turned off when the overhead needs to be reduced.
2. Features
2.1 Stream processing
- Use
information_schema.ins_streams,information_schema.ins_stream_tasks, andinformation_schema.ins_stream_recalculatesto view real-time latency, throughput, historical fill, and recalculation progress. - Federated query of an external source is supported, including InfluxDB. Trigger modes, stream options, and the observability fields in
SHOWare completed. numOfStreamRunnerDeploysandnumOfStreamRunnerReplicasare added. The first defaults to3, range 1–64, and is the number of Runner deployment groups. The second defaults to5, range 1–1024, and is the replica count of each group. Both can be changed at runtime.
2.2 taosExplorer
- The stream page can start, stop, and recalculate a stream task without writing SQL by hand.
allowedOriginscan configure cross-origin HTTP and WebSocket, so data writes from a cross-origin scenario such as IDMP work.
2.3 taosdump, taosgen, and connectors
- taosdump adds
-M/--content, with valuesbasic,ext-meta, orall. The default isbasic, which handles only super tables, child tables, ordinary tables, and their tags and time-series data.ext-metaincludes virtual tables, streams, and subscriptions, and restores them in stages so a cross-database virtual-table dependency does not fail the restore. - An incremental taosX backup can restore from any backup point with a schema snapshot, and can restore the schema of virtual tables and stream tasks.
- taosX Kafka ingestion can parse zstd-compressed messages.
- The XNode task parser limit is raised to 960 KiB, and the JOB config limit is raised to 1 MiB, so an import task with more than 400 fields can be created.
- An ordinary measurement column in taosgen can use
TIMESTAMP, and a time string can be converted to a timestamp. - The Python WebSocket connector adds
user_appto identify the application name. rpcCrcEnableis added. The default is1, which checks CRC32C on RPC messages. It can be changed withALTERand takes effect after a restart.
3. Enhancements
LASTqueries over a large time range are faster. A query skips data blocks that are entirely NULL.- Consumption capacity of the taosX Kafka Connector is higher.
- When an outer derived table has a filter, stream processing can keep using an external window, which lowers resource use of an
INTERVALwindow. - WebSocket STMT2 releases the associated query result set on close, matching native STMT2.
- An automatic-table
STMT2write no longer parses tags repeatedly. Write performance is close to writing into a table that already exists. - taosdump writes
backup.logandrestore.logduring backup and restore, recording the version, parameters, and the full SQL. - On the taosExplorer data-subscription sample-code page, the step bar follows scrolling and marks the current step.
- InfluxDB synchronization no longer loads the whole bucket metadata when only a few measurements are selected.
- A specified-table backup in taosX shortens the check before backup. When one table fails, the other tables continue.
- A scenario that should not use a tag index no longer logs IDX at error level.
- After the snapshot rate limit is reached, the rate no longer drops to 0. Transfer speed follows the configured value.
4. Fixes
4.1 Severe issues
- While a multi-replica mnode upgraded from
v3.3tov3.4.2.0throughv3.4.2.2, the role upgrade might not run, and the default system roles and user privileges were lost. Affected versions:v3.4.2.0throughv3.4.2.2. After upgrading to this release, check that the default roles and user privileges are complete. - With shared storage on and no default access string configured,
DROP DATABASEcrashed taosd. Affected versions:v3.3.7.0throughv3.4.2.2. - Reusing a result block for a stream external window could write out of bounds and crash taosd. Affected versions:
v3.3.7.0throughv3.4.2.2. - Scanning stream WAL metadata wrote out of bounds and the node went offline. Affected versions:
v3.3.7.0throughv3.4.2.2. - A notification-only stream with no calculation, configured with
MAX_DELAY, hit a null pointer when the WAL had no data and crashed taosd. Affected versions:v3.3.7.0throughv3.4.2.2. SHOW SUBSCRIPTIONScrashed because the result block was too small while a vnode was restoring. Affected versions: all versions.- With
STMT2interlace mode off, column information was freed twice and the process crashed.STMT2was released inv3.3.3.0. Affected versions:v3.3.3.0throughv3.4.2.2. - Alternating binds of several tables in
STMT2, and alternating large and small tables during a taosdump restore, caused the commit to fail and small-table data to be lost. Affected versions:v3.3.3.0throughv3.4.2.2. A backup already restored by an affected version needs its small-table data checked. - The client aborted when it received a server response while a connection was closing. Affected versions: all versions.
- An asynchronous query in the Python native connector did not keep the callback, and the process crashed. Affected versions: all versions.
- While TMQ synchronized an ordinary table created automatically by stream processing, taosAdapter crashed because metadata parsing was wrong. Affected versions:
v3.3.7.0throughv3.4.2.2. - The Windows taosdump crashed on startup on an old CPU that does not support the required instruction set. Affected versions: all versions.
- The taos client on Windows could hang while closing a connection. Affected versions: all versions.
- When a PI Connector column name was too long, the task restarted repeatedly and lost data. Affected versions: all versions. Data already ingested needs to be checked against the source.
- OPC collection could exit abnormally when the connection dropped and an abnormal node existed, so the task could not start normally. Affected versions: all versions.
- High-cardinality synchronization of InfluxDB 1.x could miss reads, so the target did not match the source. Affected versions: all versions. After the upgrade, check data already synchronized and rerun the synchronization if needed.
- During remote restore of a taosX task-level backup, a
-1subdirectory was not recognized. The command succeeded but the data was not restored. Affected versions: all versions. An environment restored by an affected version needs to be restored again and the data checked. - If the service became unavailable during a taosdump backup, an interruption could be treated as a finished read, so the backup was missing data. Affected versions: all versions.
- The
IMPUTATIONfill result was wrong. The function was introduced inv3.3.7.7.v3.3.6does not have it. Affected versions:v3.3.7.7throughv3.4.2.2. Queries that used the fill result need to be checked again. - Under overlapping
INTERVAL+SLIDINGwindows,LAST/LAST_ROWdisagreed between a direct query and a subquery, and the phase of a multi-week sliding window was unstable. Affected versions: all versions. SELECT TAGSon a virtual child table expanded the result by source-table data rows by mistake.EXPLAIN SELECT TAGScrashed when the scan-column list was empty. Virtual tables were released inv3.3.6.0. Affected versions:v3.3.6.0throughv3.4.2.2.- After
ALTER TAGon a virtual table,SELECT TAGSreported Planner slot key not found. Affected versions:v3.3.6.0throughv3.4.2.2. - After the first single-node deployment was interrupted halfway, default metadata was incomplete and a connection reported Invalid user. Missing objects are created on startup. Affected versions: all versions.
- On some platforms taosX listened only on IPv6 by default, so an XNode created with
127.0.0.1showed offline. XNode was released inv3.4.0.0. Affected versions:v3.4.0.0throughv3.4.2.2.
4.2 Query
- An
INTERVALquery reported Executor internal error because a timezone day-boundary field was missing. TIMETRUNCATEparsed a fixed timezone offset inconsistently. On scalar paths such as join and subquery, an implicit session timezone and an explicit fixed offset such as+0800truncated1dand1wdifferently.- On Windows, functions such as
TIMETRUNCATEconverted incorrectly because the timezone-offset sign was inconsistent. - While parsing a valid date,
TO_TIMESTAMPcould randomly report format mismatch because of an error left on the thread. - The same SQL reported an error when several
MAVG,STATECOUNT, orSTATEDURATIONcalls coexisted withtsor an ordinary column. - After
DROP TAGand thenADD TAGon a super table,SHOW CREATE TABLEon an existing child table reported Unexpected generic error. - From
v3.4.1.0throughv3.4.2.2, runningtaosd -kas root produced a machine code that did not match earlier versions. - From
v3.4.2.0throughv3.4.2.2, some queries became slower after RPC CRC was introduced. An x86 client now uses hardware CRC, and the check can be turned off withrpcCrcEnable.
4.3 Stream processing
- Under
PARTITION BY,FILL_HISTORYraised Internal error for some child tables that had no data after the historical start, so the historical result could not be produced. - A remote receiver failed when a WebSocket notification frame exceeded 1 MiB.
nodelay_create_subtableno longer enters the executor with a placeholder window before a real window exists, which avoids Invalid parameters on a virtual-table scan and an output child table with no result.- While processing automatically created table data, an invalid timestamp stretched the calculation range too far and CPU use was too high.
- Windows other than
INTERVALdo not support aggregateDISTINCTyet. The parser reports an error directly.
4.4 Writes and subscription
- During an automatic-table write with
STMT2or WebSocket, dropping a child table after bind and before exec reported Table does not exist, and the table could not be recreated from the bound tag and then written. - After
STMT2query binding, the session timezone was lost, so timezone results of time functions such asTO_CHARwere wrong. - An ordinary user who ran
CREATE DATABASEand then wrote with automatic table creation immediately got Permission denied because the client privilege cache had not refreshed. - A state heartbeat did not release a nested array, which leaked memory.
- A VGroup was marked offline by mistake before it had received a valid heartbeat.
4.5 taosX, taosdump, and taosExplorer
- taosX could not migrate virtual child tables during taos-to-taos synchronization.
- When the target was unavailable, for example taosd was down, taosX treated a recoverable error as fatal and exited, so synchronization could not continue after the target recovered.
- While creating a TMQ backup task, the check stage created a topic and formed a circular wait, so the first submit timed out.
- While pulling a large amount of data continuously through TMQ WebSocket, the heartbeat did not refresh the taosAdapter read timeout, so the connection dropped about every 2 minutes.
- The period parameter of a periodic backup did not take effect, so the backup could not stop on schedule.
- Path-style access failed when backing up to Alibaba Cloud object storage. S3 URI style is added, with values
pathorvirtualhost. - A backup could not handle a table name that contained special characters.
- After an XNode was deleted, a backup or ETL task could still be assigned to the deleted XNode.
- While creating an XNode CSV write task, the default field quote character made the submit fail.
- After SQL tag cache was enabled, a cached child table was dropped and the Kafka synchronization task stopped because the table did not exist.
- During a time-range backup, taosdump reported Invalid column name when the primary-key time column was not named
ts. - Resuming a taosdump backup (
-C) while changing the backup format (-F) did not check consistency, so different formats were mixed in the directory and restore failed. - A parallel mixed query in taosBenchmark did not write the result file according to the SQL result configuration.
- taosExplorer: OPC CSV upload failed to parse because the response format changed; spelling and tag style on the PI/OPC configuration page made the path filter display incorrectly; clicking through a timeout while creating a backup task created duplicates; slow-SQL pagination raised memory, switching page size showed no data, and the button could not be clicked again after a query failed; the license page showed IDMP license items by mistake; data-ingestion activity details did not show the failure reason; cancelling the dumper of an S3 backup cancelled the whole task by mistake.
- taosKeeper could not start after a Windows All-in-One installation. A crash-dump file is named after the crashed module and no longer always uses the taosd prefix.
5. Security
This release has no security-related fix.
6. Upgrade notes
6.1 Upgrade path
- Source versions that support a direct upgrade:
v3.3.7and later. - Rolling upgrade: supported, from
v3.4.2.0throughv3.4.2.5. - Downgrade or rollback: supported, from
v3.4.2.0throughv3.4.2.5. - Minimum matching client and connector version:
v3.4.2.0.
6.2 Behavior changes
rpcCrcEnabledefaults to1. The whole cluster and every client must match. When one side has CRC on, it rejects messages from a side that has CRC off. Changing it to0takes effect after a restart. That lowers the check overhead and no longer checks CRC32C.- The default of taosdump
-M/--contentisbasic. Virtual tables, streams, and subscriptions no longer enter the default backup and restore. Specifyext-metaorallwhen those objects are needed. - Using aggregate
DISTINCTin a window other thanINTERVALfails at parse time. information_schema.ins_streams,information_schema.ins_stream_tasks, andinformation_schema.ins_stream_recalculatesadd runtime and progress columns, for examplerealtime_lag_ms,input_rows_per_sec_1m,output_rows_per_sec_1m,history_progress_pct, and recalculationstatus. An application that reads by column name does not need to change.
6.3 Configuration changes
6.3.1 Stream processing
| Parameter | Purpose |
|---|---|
| numOfStreamRunnerDeploys | Number of Runner deployment groups. Default 3, range 1–64, changeable at runtime.
|
| numOfStreamRunnerReplicas | Replica count of each Runner group. Default 5, range 1–1024, changeable at runtime.
|
6.3.2 Connection
| Parameter | Purpose |
|---|---|
| rpcCrcEnable | Whether CRC32C is checked on RPC messages. Default 1. Can be changed with ALTER and takes effect after a restart. The whole cluster and the clients must match. Introduced in v3.4.2.4.
|
6.3.3 taosExplorer and taosX
| Parameter | Purpose |
|---|---|
| allowedOrigins | Cross-origin HTTP / WebSocket origins allowed by taosExplorer. |
| S3 URI style | How taosX backup accesses object storage. Values are path or virtualhost.
|
6.4 Keyword changes
None.
6.5 System table changes
information_schema.ins_streams, information_schema.ins_stream_tasks, and information_schema.ins_stream_recalculates add runtime and progress columns. See stream observability.
No system table is removed in this release.
6.6 Dependency changes
| Component | Dependency | v3.4.2.2 | v3.4.2.5 |
|---|---|---|---|
| Server | curl | 8.2.1 | 8.11.1 |
6.7 Before you upgrade
An upgrade from v3.3.6 cannot keep the old stream processing. If the old streams, TSMA, snode, and their data directories are not removed, taosd fails to start. See Compatibility Notes.
7. Known issues
None.
8. Downloads
The package is available from the TDengine download center. The package includes an SBOM and a SHA256 checksum.