[FAQ] Txn(Mvcc(Other("stale request")))

[问题澄清]

Txn(Mvcc(Other("stale request")))

[原因分析]

pessimistic prewrite 有可能出现锁冲突,因为有部分 key 不会被悲观锁锁住。这种冲突的处理方式是让 tidb 立刻 resolve lock,而隔离级别已经由之前加上的悲观锁保证了。出现这个错误的原因是,TiKV 认为这个请求是因网络问题出现的重复的请求,现在发现在有悲观锁被超时 rollback 时也有可能报这种错误,需要修复。但是因为有 txn heartbeat 的存在,这种错误几乎不会出现。

[解决方案]

悲观锁引入的一个错误,3.0.6 以后几乎不会出现了。