document.write("");

Seata 1.6.1 unLock globalSession error 死锁

前提:Mysql(事务隔离级别为:REPEATABLE_READ)

偶发全局事务 执行 delete from lock_table where xid = ?

死锁 Caused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction

1. 处理流程:

1.1 查询Issue

已有 1.6.1偶发性全局锁死锁 · Issue #5632 · apache/incubator-seata

1.2 查询解决方案

 optimize: set server's transaction level to READ_COMMITTED by xqdd · Pull Request #5638 · apache/incubator-seata · GitHub

对应fix代码(解决方案里的commit详细内容) 

 optimize: set server's transaction level to READ_COMMITTED by xqdd · Pull Request #5638 · apache/incubator-seata · GitHub

2. 解决方法:

2.1 可以选择修改代码(按照上面网页中的变更调整)

2.2 选择更简单的方式

2.2.1 DBA执行 

SET GLOBAL transaction_isolation = 'READ-COMMITTED';

2.2.2 Seata Server 重启即可(不重启,新的事务隔离级别不会应用到已有的连接)

 

posted @ 2025-09-16 16:22  人间春风意  阅读(7)  评论(0)    收藏  举报