一、背景
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;