update语句执行过程中卡死

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
版本:v5.3.0
【概述】场景+问题概述
程序开启事务更新表数据,数据量是几千行,已使用索引,但执行后不提交
【背景】做过哪些操作
max-txn-ttl为默认值
【现象】业务和数据库现象
tidb节点报错:
1.expensive-query
2.[lock_resolver.go:498] [“lock txn not found, lock has expired”]
tikv节点无报错
【业务影响】
【TiDB 版本】
【附件】

  1. TiUP Cluster Display 信息

  2. TiUP Cluster Edit Config 信息

  3. TiDB- Overview 监控

  • 对应模块日志(包含问题前后1小时日志)

语句执行时间为16:20-16:51,之后手动kill会话,kv监控如下:

请检查。是否出现锁等待

参考:什么情况下会发生txnNotFound错误呢?

2 个赞

执行期间,没有别的dml或ddl语句执行。在另一个时段执行的这个语句,也出现卡住的现象,有出现锁等待的情况,慢日志里 Exec_retry_count的次数信息,但在16:20这个时段里没有。两次执行时都报了相似的错误:
[lock_resolver.go:498] [“lock txn not found, lock has expired”] [CallerStartTs=431401114832207921] [“lock str”=“key: 7480000000000044df5f7280000000e7a2c31b, primary: 7480000000000044df5f6980000000000000010419ac2e0000000000038010d6d8aa1c0f0f, txnStartTS: 431401091960143875, lockForUpdateTS:431401105630953596, minCommitTs:431401105630953597, ttl: 88305, type: PessimisticLock, UseAsyncCommit: false, txnSize: 0”]

TIDB_TRX. 查询一下各个节点正在执行的事务

tikv和pd节点正常,未出现报错,集群在执行期间无热点。

查询一下ddl job

1 个赞