github taosdata/TDengine ver-3.4.2.5
3.4.2.5

latest release: ver-3.4.2.8
4 hours ago

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_schema show 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, and information_schema.ins_stream_recalculates to 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 SHOW are completed.
  • numOfStreamRunnerDeploys and numOfStreamRunnerReplicas are added. The first defaults to 3, range 1–64, and is the number of Runner deployment groups. The second defaults to 5, 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.
  • allowedOrigins can 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 values basic, ext-meta, or all. The default is basic, which handles only super tables, child tables, ordinary tables, and their tags and time-series data. ext-meta includes 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_app to identify the application name.
  • rpcCrcEnable is added. The default is 1, which checks CRC32C on RPC messages. It can be changed with ALTER and takes effect after a restart.

3. Enhancements

  • LAST queries 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 INTERVAL window.
  • WebSocket STMT2 releases the associated query result set on close, matching native STMT2.
  • An automatic-table STMT2 write no longer parses tags repeatedly. Write performance is close to writing into a table that already exists.
  • taosdump writes backup.log and restore.log during 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.3 to v3.4.2.0 through v3.4.2.2, the role upgrade might not run, and the default system roles and user privileges were lost. Affected versions: v3.4.2.0 through v3.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 DATABASE crashed taosd. Affected versions: v3.3.7.0 through v3.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.0 through v3.4.2.2.
  • Scanning stream WAL metadata wrote out of bounds and the node went offline. Affected versions: v3.3.7.0 through v3.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.0 through v3.4.2.2.
  • SHOW SUBSCRIPTIONS crashed because the result block was too small while a vnode was restoring. Affected versions: all versions.
  • With STMT2 interlace mode off, column information was freed twice and the process crashed. STMT2 was released in v3.3.3.0. Affected versions: v3.3.3.0 through v3.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.0 through v3.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.0 through v3.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 -1 subdirectory 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 IMPUTATION fill result was wrong. The function was introduced in v3.3.7.7. v3.3.6 does not have it. Affected versions: v3.3.7.7 through v3.4.2.2. Queries that used the fill result need to be checked again.
  • Under overlapping INTERVAL + SLIDING windows, LAST / LAST_ROW disagreed between a direct query and a subquery, and the phase of a multi-week sliding window was unstable. Affected versions: all versions.
  • SELECT TAGS on a virtual child table expanded the result by source-table data rows by mistake. EXPLAIN SELECT TAGS crashed when the scan-column list was empty. Virtual tables were released in v3.3.6.0. Affected versions: v3.3.6.0 through v3.4.2.2.
  • After ALTER TAG on a virtual table, SELECT TAGS reported Planner slot key not found. Affected versions: v3.3.6.0 through v3.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.1 showed offline. XNode was released in v3.4.0.0. Affected versions: v3.4.0.0 through v3.4.2.2.

4.2 Query

  • An INTERVAL query reported Executor internal error because a timezone day-boundary field was missing.
  • TIMETRUNCATE parsed a fixed timezone offset inconsistently. On scalar paths such as join and subquery, an implicit session timezone and an explicit fixed offset such as +0800 truncated 1d and 1w differently.
  • On Windows, functions such as TIMETRUNCATE converted incorrectly because the timezone-offset sign was inconsistent.
  • While parsing a valid date, TO_TIMESTAMP could randomly report format mismatch because of an error left on the thread.
  • The same SQL reported an error when several MAVG, STATECOUNT, or STATEDURATION calls coexisted with ts or an ordinary column.
  • After DROP TAG and then ADD TAG on a super table, SHOW CREATE TABLE on an existing child table reported Unexpected generic error.
  • From v3.4.1.0 through v3.4.2.2, running taosd -k as root produced a machine code that did not match earlier versions.
  • From v3.4.2.0 through v3.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 with rpcCrcEnable.

4.3 Stream processing

  • Under PARTITION BY, FILL_HISTORY raised 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_subtable no 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 INTERVAL do not support aggregate DISTINCT yet. The parser reports an error directly.

4.4 Writes and subscription

  • During an automatic-table write with STMT2 or 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 STMT2 query binding, the session timezone was lost, so timezone results of time functions such as TO_CHAR were wrong.
  • An ordinary user who ran CREATE DATABASE and 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 path or virtualhost.
  • 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.7 and later.
  • Rolling upgrade: supported, from v3.4.2.0 through v3.4.2.5.
  • Downgrade or rollback: supported, from v3.4.2.0 through v3.4.2.5.
  • Minimum matching client and connector version: v3.4.2.0.

6.2 Behavior changes

  • rpcCrcEnable defaults to 1. 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 to 0 takes effect after a restart. That lowers the check overhead and no longer checks CRC32C.
  • The default of taosdump -M / --content is basic. Virtual tables, streams, and subscriptions no longer enter the default backup and restore. Specify ext-meta or all when those objects are needed.
  • Using aggregate DISTINCT in a window other than INTERVAL fails at parse time.
  • information_schema.ins_streams, information_schema.ins_stream_tasks, and information_schema.ins_stream_recalculates add runtime and progress columns, for example realtime_lag_ms, input_rows_per_sec_1m, output_rows_per_sec_1m, history_progress_pct, and recalculation status. 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.

Don't miss a new TDengine release

NewReleases is sending notifications on new releases.