TiDB 6.5.12 Release Notes
Release date: February 27, 2025
TiDB version: 6.5.12
Quick access: Quick start | Production deployment
Compatibility changes
- Support the openEuler 22.03 LTS SP3/SP4 operating system. For more information, see OS and platform requirements.
- Set a default limit of 2048 for DDL historical tasks retrieved through the TiDB HTTP API to prevent OOM issues caused by excessive historical tasks #55711 @joccau
- Add a new system variable
tidb_ddl_reorg_max_write_speed
to limit the maximum speed of the ingest phase when adding indexes #57156 @CbcWestwolf
Improvements
TiDB
- Enhance the validity check for read timestamps #57786 @MyonKeminta
TiKV
TiFlash
- Improve the garbage collection speed of outdated data in the background for tables with clustered indexes #9529 @JaySon-Huang
Tools
Backup & Restore (BR)
- Add a check to verify whether the target cluster is an empty cluster for full restore #35744 @3pointer
- Add a check to verify whether the target cluster contains a table with the same name for non-full restore #55087 @RidRisR
- Except for the
br log restore
subcommand, all otherbr log
subcommands support skipping the loading of the TiDBdomain
data structure to reduce memory consumption #52088 @Leavrth - Disable the table-level checksum calculation during full backups by default (
--checksum=false
) to improve backup performance #56373 @Tristan1900
TiDB Lightning
Bug fixes
TiDB
- Fix the issue that using subqueries after the
NATURAL JOIN
orUSING
clause might result in errors #53766 @dash12653 - Fix the issue that the
CAST
function does not support explicitly setting the character set #55677 @Defined2014 - Fix the issue that the
LOAD DATA ... REPLACE INTO
operation causes data inconsistency #56408 @fzzf678 - Fix the issue that TiDB does not check the index length limitation when executing
ADD INDEX
#56930 @fzzf678 - Fix the issue of illegal memory access that might occur when a Common Table Expression (CTE) has multiple data consumers and one consumer exits without reading any data #55881 @windtalker
- Fix the issue that some predicates might be lost when constructing
IndexMerge
#58476 @hawkingrei - Fix the issue that converting data from the
BIT
type to theCHAR
type might cause TiKV panics #56494 @lcwangchao - Fix the issue that using variables or parameters in the
CREATE VIEW
statement does not report errors #53176 @mjonss - Fix the issue that unreleased session resources might lead to memory leaks #56271 @lance6716
- Fix the issue that executing
ADD INDEX
might fail after modifying the PD member in the distributed execution framework #48680 @lance6716 - Fix the issue that using
ORDER BY
when queryingcluster_slow_query table
might generate unordered results #51723 @Defined2014 - Fix the issue that stale read does not strictly verify the timestamp of the read operation, resulting in a small probability of affecting the consistency of the transaction when an offset exists between the TSO and the real physical time #56809 @MyonKeminta
- Fix the issue that the performance of querying
INFORMATION_SCHEMA.columns
degrades #58184 @lance6716 - Fix the issue that the
INSERT ... ON DUPLICATE KEY
statement is not compatible withmysql_insert_id
#55965 @tiancaiamao - Fix the issue that the optimizer incorrectly estimates the number of rows as 1 when accessing a unique index with the query condition
column IS NULL
#56116 @hawkingrei - Fix the issue that part of the memory of the
IndexLookUp
operator is not tracked #56440 @wshwsh12 - Fix the potential data race issue that might occur in TiDB's internal coroutine #57798 #56053 @fishiu @tiancaiamao
- Fix the issue that the
read_from_storage
hint might not take effect when the query has an available Index Merge execution plan #56217 @AilinKid - Fix the issue that execution plan bindings cannot be created for the multi-table
DELETE
statement with aliases #56726 @hawkingrei - Fix the issue that
INDEX_HASH_JOIN
might hang during an abnormal exit #54055 @wshwsh12 - Fix the issue that two DDL Owners might exist at the same time #54689 @joccau
- Fix the issue that when querying the
information_schema.cluster_slow_query
table, if the time filter is not added, only the latest slow log file is queried #56100 @crazycs520 - Fix the issue that
duplicate entry
might occur when adding unique indexes #56161 @tangenta - Fix the issue that the error message is incorrect in certain type conversion errors #41730 @hawkingrei
- Fix the issue that the CTE defined in
VIEW
is incorrectly inlined #56582 @elsa0520 - Fix the issue that the
UPDATE
statement incorrectly updates values of theENUM
type #56832 @xhebox - Fix the issue that executing the
UPDATE
statement after adding aDATE
column results in the errorIncorrect date value: '0000-00-00'
in some cases #59047 @mjonss - Fix the issue that in the Prepare protocol, an error occurs when the client uses a non-UTF8 character set #58870 @xhebox
- Fix the issue that querying temporary tables might trigger unexpected TiKV requests in some cases #58875 @tiancaiamao
- Fix the issue that the
ONLY_FULL_GROUP_BY
setting does not take effect on statements in views #53175 @mjonss - Fix the issue that querying partitioned tables using an
IN
condition containing a mismatched value type and a type conversion error leads to incorrect query results #54746 @mjonss - Fix the issue that querying slow logs might fail when certain fields contain empty values #58147 @yibin87
- Fix the issue that the
RADIANS()
function computes values in an incorrect order #57671 @gengliqi - Fix the issue that the default value of the
BIT
column is incorrect #57301 @YangKeao - Fix the issue that an inline error might occur if a CTE contains
ORDER BY
,LIMIT
, orSELECT DISTINCT
clauses and is referenced by the recursive part of another CTE #56603 @elsa0520 - Fix the issue that the timeout that occurs when loading statistics synchronically might not be handled correctly #57710 @hawkingrei
- Fix the issue that an incorrect database name might be returned when parsing the database name in a CTE #54582 @hawkingrei
- Fix the issue that TiDB might panic during startup due to invalid data binding #58016 @qw4990
- Fix the issue that cost estimation might generate invalid INF/NaN values in certain extreme cases, which could lead to incorrect Join Reorder results #56704 @winoros
- Fix the issue that loading statistics manually might fail when the statistics file contains null values #53966 @King-Dylan
- Fix the issue that creating two views with the same name does not report an error #58769 @tiancaiamao
- Fix the issue that when a virtual generated column's dependencies contain a column with the
ON UPDATE
attribute, the data of the updated row and its index data might be inconsistent #56829 @joechenrh - Fix the issue that the
INFORMATION_SCHEMA.TABLES
system table returns incorrect results #57345 @tangenta
- Fix the issue that using subqueries after the
TiKV
- Fix the issue that Follower Read might read stale data #17018 @glorv
- Fix the issue that TiKV might panic when destroying a peer #18005 @glorv
- Fix the issue that time rollback might cause abnormal RocksDB flow control, leading to performance jitter #17995 @LykxSassinator
- Fix the issue that disk stalls might prevent leader migration, leading to performance jitter #17363 @hhwyt
- Fix the issue that the latest written data might not be readable when only one-phase commit (1PC) is enabled and Async Commit is not enabled #18117 @zyguan
- Fix the issue that a deadlock might occur when GC Worker is under heavy load #18214 @zyguan
- Fix the issue that the Storage async write duration monitoring metric on the TiKV panel in Grafana is inaccurate #17579 @overvenus
- Fix the issue that TiKV might panic when executing queries containing
RADIANS()
orDEGREES()
functions #17852 @gengliqi - Fix the issue that merging Regions might cause TiKV to panic in rare cases #17840 @glorv
- Fix the issue that the leader could not be quickly elected after Region split #17602 @LykxSassinator
- Fix the issue that encoding might fail when processing GBK/GB18030 encoded data #17618 @CbcWestwolf
PD
- Fix the issue that memory leaks might occur when allocating TSOs #9004 @rleungx
- Fix the issue that the
tidb_enable_tso_follower_proxy
system variable might not take effect #8947 @JmPotato - Fix a potential issue that might cause PD to panic #8915 @bufferflies
- Fix the issue that memory leaks might occur in long-running clusters #9047 @bufferflies
- Fix the issue that a PD node might still generate TSOs even when it is not the Leader #9051 @rleungx
- Fix the issue that Region syncer might not exit in time during the PD Leader switch #9017 @rleungx
- Fix the issue that when creating
evict-leader-scheduler
orgrant-leader-scheduler
encounters an error, the error message is not returned to pd-ctl #8759 @okJiang - Fix the memory leak issue in hotspot cache #8698 @lhy1024
- Fix the issue that PD's Region API cannot be requested when a large number of Regions exist #55872 @rleungx
- Fix the issue that
evict-leader-scheduler
fails to work properly when it is repeatedly created with the same Store ID #8756 @okJiang - Upgrade the version of Gin Web Framework from v1.9.1 to v1.10.0 to fix potential security vulnerabilities #8643 @JmPotato
- Fix the issue that when using a wrong parameter in
evict-leader-scheduler
, PD does not report errors correctly and some schedulers are unavailable #8619 @rleungx - Fix the memory leak issue in label statistics #8700 @lhy1024
- Fix the issue that TiDB Dashboard cannot read PD
trace
data correctly #7253 @nolouch - Fix the memory leak issue in Region statistics #8710 @rleungx
- Fix the issue that PD cannot quickly re-elect a leader during etcd leader transition #8823 @rleungx
TiFlash
- Fix the issue that the
SUBSTRING()
function does not support thepos
andlen
arguments for certain integer types, causing query errors #9473 @gengliqi - Fix the issue that some JSON functions unsupported by TiFlash are pushed down to TiFlash #9444 @windtalker
- Fix the issue that the
SUBSTRING()
function returns incorrect results when the second parameter is negative #9604 @guo-shaoge - Fix the issue that
LPAD()
andRPAD()
functions return incorrect results in some cases #9465 @guo-shaoge - Fix the issue that executing
DROP TABLE
on large tables might cause TiFlash OOM #9437 @JaySon-Huang - Fix the issue that TiFlash fails to start due to a division by zero error when retrieving the number of CPU cores #9212 @xzhangxian1008
- Fix the issue that TiFlash might maintain high memory usage after importing large amounts of data #9812 @CalvinNeo
- Fix the issue that the
Tools
Backup & Restore (BR)
- Fix the issue that BR fails to restore due to getting the
rpcClient is idle
error when sending requests to TiKV #58845 @Tristan1900 - Fix the issue that the
status
field is missing in the result when querying log backup tasks usingbr log status --json
#57959 @Leavrth - Fix the issue that PD Leader I/O latency during log backup might increase checkpoint latency #58574 @YuJuncen
- Fix the issue that the
tiup br restore
command omits checking whether the target cluster table already exists during database or table restoration, which might overwrite existing tables #58168 @RidRisR - Fix the issue that log backup might unexpectedly enter a paused state when the advancer owner switches #58031 @3pointer
- Fix the issue that log backups cannot resolve residual locks promptly, causing the checkpoint to fail to advance #57134 @3pointer
- Fix the issue that BR integration test cases are unstable, and add a new test case to simulate snapshot or log backup file corruption #53835 @Leavrth
- Fix the issue that logs might print out encrypted information #57585 @kennytm
- Fix the issue that PITR tasks might return the
Information schema is out of date
error when there are a large number of tables in the cluster but the actual data size is small #57743 @Tristan1900
- Fix the issue that BR fails to restore due to getting the
TiCDC
- Fix the issue that TiCDC uses incorrect table names for filtering during
RENAME TABLE
operations #11946 @wk989898 - Fix the issue that TiCDC reports errors when replicating
default NULL
SQL statements via the Avro protocol #11994 @wk989898 - Fix the issue that TiCDC fails to properly connect to PD after PD scale-in #12004 @lidezhu
- Fix the issue that Initial Scan is not canceled after the changefeed is stopped or deleted #11638 @3AceShowHand
- Fix the issue that after the default value of a newly added column in the upstream is changed from
NOT NULL
toNULL
, the default values of that column in the downstream are incorrect #12037 @wk989898 - Fix the issue that using the
--overwrite-checkpoint-ts
parameter in thechangefeed pause
command might cause the changefeed to be stuck #12055 @hongyunyan - Fix the issue that TiCDC might panic when replicating
CREATE TABLE IF NOT EXISTS
orCREATE DATABASE IF NOT EXISTS
statements #11839 @CharlesCheung96 - Fix the issue that TiCDC might report an error when replicating a
TRUNCATE TABLE
DDL on a table without valid index #11765 @asddongmen - Fix the issue that TiCDC mistakenly discards DDL tasks when the schema versions of DDL tasks become non-incremental during TiDB DDL owner changes #11714 @wlwilliamx
- Fix the issue that the changefeed might get stuck after new TiKV nodes are added to the cluster #11766 @lidezhu
- Fix the issue that out-of-order messages resent by the Sarama client cause Kafka message order to be incorrect #11935 @3AceShowHand
- Fix the issue that the Resolved TS latency monitoring in the Puller module displays incorrect values #11561 @wlwilliamx
- Fix the issue that the redo module fails to properly report errors #11744 @CharlesCheung96
- Fix the issue that TiCDC uses incorrect table names for filtering during
TiDB Data Migration (DM)
- Fix the issue that multiple DM-master nodes might simultaneously become leaders, leading to data inconsistency #11602 @GMHDBJD
- Fix the issue that connecting to MySQL 8.0 fails when the password length exceeds 19 characters #11603 @fishiu
- Fix the issue that the pre-check of
start-task
fails when both TLS andshard-mode
are configured #11842 @sunxiaoguang
TiDB Lightning
- Fix the issue that logs are not properly desensitized #59086 @GMHDBJD
- Fix the issue that the lack of caching in the encoding phase causes performance regression #56705 @OliverS929
- Fix the issue that the performance degrades when importing data from a cloud storage in high-concurrency scenarios #57413 @xuanyu66
- Fix the issue that TiDB Lightning does not automatically retry when encountering
Lock wait timeout
errors during metadata updates #53042 @guoshouyan - Fix the issue that TiDB Lightning fails to receive oversized messages sent from TiKV #56114 @fishiu
- Fix the issue that the error report output is truncated when importing data using TiDB Lightning #58085 @lance6716
Dumpling
- Fix the issue that Dumpling fails to retry properly when receiving a 503 error from Google Cloud Storage (GCS) #56127 @OliverS929
TiDB 6.5.12 Release Noteswas last updated 2/27/2025, 1:11:59 PM: add v6.5.12 release notes (#20347) (#20398)