TiDB 7.1.5 Release Notes

发版日期:2024 年 4 月 26 日

TiDB 版本:7.1.5

试用链接:快速体验 | 生产部署 | 下载离线包

兼容性变更

改进提升

  • TiDB

    • 支持从 PD 批量加载 Region,加快在对大表进行查询时,从 KV Range 到 Regions 的转换过程 #51326 @SeaRise
    • 优化 ANALYZE 语句卡住元数据锁的问题 #47475 @wjhuang2016
    • 为 LDAP 身份认证添加超时机制,避免资源锁 (RLock) 无法及时释放的问题 #51883 @YangKeao
  • TiKV

    • 增加 peer 和 store 消息的 slow log #16600 @Connor1996
    • 在 raftstore 线程中避免进行快照文件的 IO 操作,提高 TiKV 稳定性 #16564 @Connor1996
  • PD

  • Tools

    • Backup & Restore (BR)

      • 在遇到较大的 checkpoint lag 时,日志备份支持自动放弃任务,以避免日志备份长时间阻塞 GC,从而防止集群出现问题 #50803 @RidRisR
      • 增加 PITR 集成测试用例,覆盖对日志备份与添加索引加速功能的兼容性测试 #51987 @Leavrth
      • 移除日志备份启动时检查是否存在活动 DDL job 的无效检查 #52733 @Leavrth

错误修复

  • TiDB

    • 修复一些情况下查询 BINARY 类型的 JSON 可能会报错的问题 #51547 @YangKeao
    • 修复当 SQL 语句中包含 JOINSELECT 列表只包含常量时,使用 MPP 执行查询可能导致查询结果出错的问题 #50358 @yibin87
    • 修复 init-stats 流程可能导致 TiDB panic 以及 load stats 流程直接退出的问题 #51581 @hawkingrei
    • 修复 TiDB Server 在初始化完成之前就标记为 Health 的问题 #51596 @shenqidebaozi
    • 修复主键类型是 VARCHAR 时,执行 ALTER TABLE ... COMPACT TIFLASH REPLICA 可能会错误地提前结束的问题 #51810 @breezewish
    • 修复 shuffleExec 意外退出导致 TiDB 崩溃的问题 #48230 @wshwsh12
    • 修复某些情况下 SHOW CREATE PLACEMENT POLICY 语句不显示 SURVIVAL_PREFERENCES 属性的问题 #51699 @lcwangchao
    • 修复设置统计信息自动更新的时间窗口后,时间窗口外统计信息仍然可能更新的问题 #49552 @hawkingrei
    • 修复当子查询中的 HAVING 子句包含关联列时,查询结果可能出错的问题 #51107 @hawkingrei
    • 修复 approx_percentile 函数可能导致 TiDB panic 的问题 #40463 @xzhangxian1008
    • 修复 IN() 谓词中包含 NULL 时,查询结果错误的问题 #51560 @winoros
    • 修复当配置文件中出现不合规的配置项时,配置文件不生效的问题 #51399 @Defined2014
    • 修复 EXCHANGE PARTITION 在处理外键时判断错误的问题 #51807 @YangKeao
    • 修复查询 TIDB_HOT_REGIONS 表时结果返回内存表的问题 #50810 @Defined2014
    • 修复 IFNULL 函数返回的类型和 MySQL 不一致的问题 #51765 @YangKeao
    • 修复 TTL 功能在某些情况下因为没有正确切分数据范围而造成数据热点的问题 #51527 @lcwangchao
    • 修复 TiDB 持续发送探活请求到已经下线的 TiFlash 节点的问题 #46602 @zyguan
    • 修复在 AUTO_ID_CACHE=1 时,AutoID Leader 发生变更可能造成自增列的值减少的问题 #52600 @tiancaiamao
    • 修复执行 INSERT IGNORE 可能出现唯一索引和数据不一致的问题 #51784 @wjhuang2016
    • 修复添加唯一索引可能导致 TiDB panic 的问题 #52312 @wjhuang2016
    • 修复窗口函数中有某些子查询时可能会 panic 的问题 #42734 @hi-rustin
    • 修复 init-stats 流程可能导致 TiDB panic 以及 load stats 流程直接退出的问题 #51581 @hawkingrei
    • 修复关闭 TableDual 的 Predicate 下推后,出现性能回退的问题 #50614 @time-and-fate
    • 修复当子查询中的 HAVING 子句包含关联列时,查询结果可能出错的问题 #51107 @hawkingrei
    • 修复当某些列的统计信息没有完全加载时,EXPLAIN 语句的结果中可能会显示错误的列 ID 的问题 #52207 @time-and-fate
  • TiKV

    • 修复由于过时的 Region peer 忽略 GC 消息导致 resolve-ts 被阻塞的问题 #16504 @crazycs520
    • 修复 RocksDB 中非活跃的 WAL (Write Ahead Log) 可能损毁数据的问题 #16705 @Connor1996
    • 修复监控指标 tikv_unified_read_pool_thread_count 有时没有数据的问题 #16629 @YuJuncen
    • 修复乐观事务在执行期间被其它事务发起 resolve lock 时,如果事务的 primary key 上之前有通过异步提交 (Async Commit) 或一阶段提交 (1PC) 模式提交的数据,事务的原子性可能有小概率被破坏问题 #16620 @MyonKeminta
  • PD

    • 修复写热点调度可能会违反放置策略 (placement policy) 约束的问题 #7848 @lhy1024
    • 修复 SHOW CONFIG 的查询结果包含已废弃的 trace-region-flow 配置项的问题 #7917 @rleungx
    • 修复扩缩容进度显示不准确的问题 #7726 @CabinfeverB
  • TiFlash

    • 修复日志中 local_region_num 数值错误的问题 #8895 @JaySon-Huang
    • 修复查询生成列出错的问题 #8787 @guo-shaoge
    • 修复 ENUM 列在 chunk encode 时可能会导致 TiFlash crash 的问题 #8674 @yibin87
    • 修复在非严格 sql_mode 下插入数据到带有异常默认值的列可能导致 TiFlash panic 的问题 #8803 @Lloyd-Pottiger
    • 修复 TIME 类型的列在精度修改后,如果发生 Region 迁移、分裂或合并,可能会导致查询出错的问题 #8601 @JaySon-Huang
  • Tools

    • Backup & Restore (BR)

      • 修复在日志备份任务被暂停后,移除任务无法立即恢复 GC safepoint 的问题 #52082 @3pointer
      • 修复全量备份失败时打印过多日志的问题 #51572 @Leavrth
      • 修复在包含 AUTO_RANDOM 列的联合聚簇索引中,BR 无法备份 AUTO_RANDOM ID 分配进度的问题 #52255 @Leavrth
      • 修复在某些极端情况下,全量备份因找不到 peer 导致 TiKV panic 的问题 #16394 @Leavrth
      • 修复 PD 连接失败导致日志备份 advancer owner 所在的 TiDB 可能崩溃的问题 #52597 @YuJuncen
      • 修复一个不稳定的测试用例 #52547 @Leavrth
      • 修复因 TiKV 重启,日志备份的 global checkpoint 推进提前于实际备份文件写入点,可能导致少量备份数据丢失的问题 #16809 @YuJuncen
      • 修复在小概率情况下,由于特殊的事件时序导致日志备份数据丢失的问题 #16739 @YuJuncen
    • TiCDC

      • 修复上游写入 Exchange Partition ... With Validation DDL 后,TiCDC 向下游执行该 DDL 时失败,导致 changefeed 卡住的问题 #10859 @hongyunyan
      • 修复恢复 changefeed 时 changefeed 的 checkpoint-ts 小于 TiDB 的 GC safepoint,没有及时报错 snapshot lost caused by GC 的问题 #10463 @sdojjy
      • 修复在调度表的同步任务时 TiCDC panic 的问题 #10613 @CharlesCheung96
      • 修复在频繁执行 DDL 的场景中,由于错误的 BarrierTS 导致数据被写入到错误的 CSV 文件的问题 #10668 @lidezhu
      • 修复当对象存储遇到暂时故障时,启用了最终一致性功能的 changefeed 可能直接失败的问题 #10710 @CharlesCheung96
      • 修复 open-protocol 的 old value 部分错误地按照 STRING 类型而非真正类型输出默认值的问题 #10803 @3AceShowHand
    • TiDB Lightning

      • 修复导入 Parquet 格式的空表时,TiDB Lightning panic 的问题 #52518 @kennytm
      • 修复服务器模式下 TiDB Lightning 打印日志敏感信息的问题 #36374 @kennytm