Error(Txn(Error(Mvcc(Error(PessimisticLockNotFound

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


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