update语句执行报错, 事务提交时过期

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】6.5
【复现路径】执行update语句失败后在次执行报错
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

[2024/03/07 22:26:11.931 +08:00] [ERROR] [lock_resolver.go:1103] [“resolveLock error”] [error=“unexpected resolve err: commit_ts_expired:<start_ts:443481858696045745 attempted_commit_ts:443481858696070679 key:"t\200\000\000\000\000\000\002j_r\200\000\000\000\003\314Q\264" min_commit_ts:443481864372486146 > , lock: key: 74800000000000026a5f728000000003cc51b4, primary: 74800000000000021d5f698000000000000001013838373434303432ff3039373535303535ff3938000000000000f9, txnStartTS: 443481858696045745, lockForUpdateTS:443481858696054340, minCommitTs:443481864372486146, ttl: 44600, type: Put, UseAsyncCommit: true, txnSize: 1”]

事务没提交也没回滚吧。

1 个赞

执行更新时没开事务,然后执行报错改了下sql重新执行就不可以了 :upside_down_face:

看着是有锁

为什么有锁,没看出来

select * from information_schema.data_lock_waits
通过查询没有看到和这个更新相关的锁,所以就很奇怪 :upside_down_face:

我是查的是这两张表
information_schema.deadlocks
information_schema.CLUSTER_TIDB_TRX

没看到相关的锁,这种问题一版怎么处理呢现在这部分数据还是更新不了

事物没有提交吧

查下几台机器的时间

报了一堆锁么。