Error(Txn(Error(Mvcc(Error(PessimisticLockNotFound

【 TiDB 使用环境】调研
【 TiDB 版本】V5.4.2
【遇到的问题】
2022-08-30T06:08:27.122217166Z [v1] [2022-08-30T14:08:27.120+0800] [error] [main] index [TID:N/A] uncaughtException|err: QueryFailedError: tikv aborts txn: Error(Txn(Error(Mvcc(Error(PessimisticLockNotFound { start_ts: TimeStamp(435641308093362171), key: [116, 128, 0, 0, 0, 0, 0, 1, 74, 95, 105, 128, 0, 0, 0, 0, 0, 0, 1, 1, 70, 89, 81, 48, 48, 48, 48, 48, 255, 48, 48, 48, 49, 51, 51, 52, 50, 255, 55, 0, 0, 0, 0, 0, 0, 0, 248, 1, 112, 101, 114, 102, 84, 101, 115, 116, 255, 0, 0, 0, 0, 0, 0, 0, 0, 247, 1, 107, 90, 121, 86, 72, 97, 98, 49, 255, 117, 99, 0, 0, 0, 0, 0, 0, 249, 1, 99, 114, 101, 97, 116, 101, 0, 0, 253, 3, 64, 0, 0, 0, 186, 103, 6, 162] })))))

【复现路径】做过哪些操作出现的问题
【问题现象及影响】
目前是在做业务的性能测试,前几天连着几天跑着都正常,昨天突然有这个问题,今天早上我看了一下从凌晨2点多又没有了,目前看的现象是只有delete语句会遇到这个问题,事物模型用的默认的悲观事物
| Variable_name | Value |
±--------------±------------+
| tidb_txn_mode | pessimistic |
±--------------±------------+

[FAQ] tikv aborts txn: Txn(Mvcc(PessimisticLockNotFound 这有个帖子也没有说问题原因和答案

悲观锁事务会遇到该类报错,事务开始执行时上锁,达到 [pessimistic-txn] 部分的 ttl 后锁被释放。 ttl 是悲观事务的锁超时时间,默认值 30 秒,可以在 15 秒到 120 秒之间配置,超出这个范围会报错。如果事务的执行时间超过了 ttl,事务会失败。设置过大,会存在 tidb-server 宕机时,残留的悲观锁长时间阻塞写的问题,设置的过小,会存在事务来不及执行完,就被其他事务 rollback 的问题。


FAQ 上这些描述很清楚了阿,基本上就是超时了… 没执行完,悲观锁会被认为是失效的事务,会被清理掉,但是运行的 SQL 如果还没执行完成,会去找这个悲观锁,确认执行情况,就会报这个错误了

从慢日志看超过5s的sql都没有,所以不应该有超过30s的,这个问题在集群压力不变的情况下凌晨多的时候这个报错就没有了:grinning:

可以开启资源定位,对于执行时间和内存占用,大于设定值的进行记录,帮助诊断~

有开启资源定位的文档嘛,帮忙发下

https://docs.pingcap.com/zh/tidb/stable/identify-expensive-queries

开启这个能力就行了

你就能拿到你想要的信息了

1 个赞

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