TiDB 7.1集群卡住,报 lock txn not found, lock has expired

【 TiDB 使用环境】测试/ Poc
【 TiDB 版本】7.1.0
【复现路径】长时间无法连接集群
【遇到的问题:问题现象及影响】
长时间无法连接集群,报错。重启集群也不能恢复。

[2023/07/25 20:12:03.322 +08:00] [WARN] [lock_resolver.go:667] ["lock txn not found, lock has expired"] [CallerStartTs=0] ["lock str"="key: 7480000000000000285f7280000000012c8e03, primary: 7480000000000000165f698000000000000002038000000000005b42, txnStartTS: 443098245297340417, lockForUpdateTS:443098245572591655, minCommitTs:443098245572591656, ttl: 21090, type: PessimisticLock, UseAsyncCommit: false, txnSize: 0"]
[2023/07/25 20:12:03.656 +08:00] [INFO] [2pc.go:1195] ["send TxnHeartBeat"] [startTS=443098593398358050] [newTTL=151000]
[2023/07/25 20:12:04.332 +08:00] [WARN] [lock_resolver.go:667] ["lock txn not found, lock has expired"] [CallerStartTs=0] ["lock str"="key: 7480000000000000285f7280000000012c8e04, primary: 7480000000000000165f698000000000000002038000000000005b42, txnStartTS: 443098245297340417, lockForUpdateTS:443098245572591655, minCommitTs:443098245572591656, ttl: 21090, type: PessimisticLock, UseAsyncCommit: false, txnSize: 0"]

【附件:截图/日志/监控】
image

这个是悲观锁锁住吧 你应用点开就好了

是什么操作呢。重启集群还会有这个报错。

现在登录不了tidb客户端

重启tidb-server后,立即登录tidb,可以登录。

  • 查看只有analyze 收集统计信息
    这个表数据量20w,收集统计信息耗时1000s+,不知道是否有关系
| 8996164556044632577 | root | 127.0.0.1:23619 | select id,user,host,info,time from information_schema.processlist |    0 |
| 8996164556044632067 |      |                 | analyze table `stat`.`table_name1`                           | 1047 |
+---------------------+------+-----------------+-------------------------------------------------------------------+------+
  • 关闭统计自动收集,重启tidb-server ,恢复正常。
set global tidb_enable_auto_analyze=0;
1 个赞

SELECT * FROM INFORMATION_SCHEMA.TIKV_REGION_STATUS A
WHERE UPPER(‘7480000000000000285f7280000000012c8e03’) BETWEEN A.START_KEY AND A.END_KEY;
看一下是系统表不是,我怀疑是自动收集统计信息任务触发了bug,锁住了系统表,又不释放,导致无法登陆

1 个赞

您好,
这边暂时没有复现,请问有相关bug list么

TiDB v5.3.1 - panic while running TPCC · Issue #34307 · pingcap/tidb (github.com)
有类似的,但是是5.3的,7.1不应该还有这个bug了吧。。。
还有一个, insert to mysql.stats_buckets yields errror Data too long for column ‘lower_bound’ at row 1 · Issue #30925 · pingcap/tidb (github.com)

报错信息很相似。

集群工作背景和操作步骤:

  1. Lightning 导入数据,导入1h后中断,报错连接数据库超时。

  2. 重启 tidb集群后,连接数据库依然卡住。

  3. 关闭tidb-server快速重连登录,关闭 统计信息收集后,再次重启恢复

1 个赞

通常是由于 TiKV 中的锁冲突导致

如何定位呢

长时间无法连接集群之前,做过什么操作吗?有没有 kill 过 tidb ?
可能是前序事务遗留锁,tidb 需要等待 wait-for-lock-timeout 后清理锁,如果遗留的锁很多,这个时间可能会非常长~ 可以等待一轮 gc ,让gc 来清理锁,之后再试试
https://docs.pingcap.com/zh/tidb/stable/tikv-configuration-file#wait-for-lock-timeout

1 个赞
  1. 在做lightning 数据导入,但是lightning 导入数据中断了。

  2. 没有直接kill tidb,通过tiup restart 重启的tidb-server,重启过程很慢。

连接报错:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 104

乐观事务下锁冲突解决 乐观事务模型下写写冲突问题排查 | PingCAP 文档中心
希望可以帮到你

1 个赞

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。