TiDB-遇到的bug整理

本文记录了TiDB分布式数据库遇到的各类bug。包括高精度decimal相除+distinct、创建视图含子查询、视图和CTE递归使用等问题,还涉及dumpling备份报错、cdc同步任务问题等,同时给出了相应的解决办法,如转换类型、升级版本等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

TiDB是一个非常优秀的分布式数据库,但是成长的过程中难免会有一些bug,这里记载一些遇到的或者见到的bug,帮助排查问题

二、详情

1.bug
bug地址:https://github.com/pingcap/tidb/issues/15563
描述:高精度deciaml相除+distinct产生的bug
解决:采用转换decimal类型或者修改逻辑来解决

2.bug
bug地址:https://github.com/pingcap/tidb/issues/21858,https://github.com/pingcap/tidb/issues/10242
描述:当oom或者有bug1的查询造成bud number或者lost connection的时候就会出现这个问题
解决:在4版本只是偶发,目前还没有找到规避的办法

3.bug
bug地址:https://github.com/pingcap/dumpling/issues/310
描述:dumpling4.0.13备份报错unsupported primary key for selectTableRegion. pkFields: [id, id], pkColTypes: [BIGINT, BIGINT],原因是因为表中同时含有主键和唯一建,所以不成功,有报错
解决:用4.0.14版本解决

4.bug
bug地址:https://github.com/pingcap/tidb/issues/25646
描述:创建视图的时候含有子查询,查询视图的时候会报错
解决:可以把子查询的部分单独创建一个视图,然后引用这个视图来创建新的视图

5.bug
bug地址:https://github.com/pingcap/tidb/issues/33965
描述:视图和with as(CTE)的递归使用导致的bug
解决:用子查询绕过

6.bug
bug地址:https://github.com/pingcap/tidb/issues/31981
描述:dumpling导致的oom
解决:升级

7.bug
bug地址:https://github.com/pingcap/tidb/pull/29212
描述:一条select where in()语句kill tidb之后能够show processlist还能成功显示,没有kill成功,目前无法找到准确的issue,只有个类似
解决:重启tidb节点
持续更新中

8.bug
bug地址:https://github.com/pingcap/tidb/issues/38844
描述:使用ifnull()的时候有可能会data too long的错误
影响版本:6.1
解决:避免ifnull或者避免6.1版本

8.bug
bug地址: https://github.com/pingcap/tiflow/issues/4241(类似但不一致,论坛地址描述https://asktug.com/t/topic/1005003/3)
描述:cdc同步到kafka的任务出现了问题,同时影响了其他任务的同步
影响版本:4.0.13
解决:删除同步kafka的任务,或者升级更高的版本

9.bug
bug地址: https://github.com/pingcap/tidb/issues/56619
描述:遇到日志报错throwing pseudo region error due to no replica available
需要高版本的go编译才行

10.bug
https://github.com/pingcap/tidb/issues/50538
https://github.com/pingcap/tidb/issues/61173

tidb核数不一致的时候执行ddl会有问题

11.表关联bug
tidb两表关联的时候,小表结果集没有数据,用inl_join就特别慢,用hash_join就特别快,但是小表有数据的情况,用inl_join就特别快,用hash_join就特别快

12.资源管控bug
给账户设置了rg后,原本binding到tiflash的查询会不生效,把资源给成default后依旧不生效,只有把资源组删除才有用,但有可能造成tidb重启

CREATE RESOURCE GROUP IF NOT EXISTS rg1 RU_PER_SEC = 2000

create user rc_gu@'10.%' identified by 'rc_gu'
grant select on sirius_edm_stats.* to rc_gu@'10.%';
ALTER USER rc_gu@'10.%' RESOURCE GROUP rg1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值