seata 事务回滚发生死锁

guykilcj  于 2个月前  发布在  其他
关注(0)|答案(2)|浏览(35)
  • I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description

事务回滚发生死锁

Ⅱ. Describe what happened

Ⅲ. Describe what you expected to happen

Ⅳ. How to reproduce it (as minimally and precisely as possible)

偶发性,本地尝试无法重现

Ⅴ. Anything else we need to know?

Ⅵ. Environment:

  • JDK version :1.8
  • OS : centos7
  • seata: 1.3.0
  • mysql是阿里云的rds 5.7.14-AliSQL-X-Cluster-1.5.0.3-20191128-log
  • mysql 隔离级别 READ-COMMITTED
  • seata的数据源代理设置 seata.enable-auto-data-source-proxy=false
ilmyapht

ilmyapht1#

偶发性问题,不影响一致性,故持续跟踪排查,有相关问题讨论欢迎在此留言

plupiseo

plupiseo2#

这个我能在我的项目中可以复现:
进入事务方法->分布锁枷锁->业务代码, 然后压测:), 当压测请求的分布锁(zk的)获取时间(如超时10秒)小于整个压测请求执行时间(如需20秒),这时就会出现死锁(lock_table锁数据),现象就是seata提示获取不到global lock.

一般正常走业务是没问题。对特定业务并高的,需要提前预估做出预估兵法,加大业务服务处理能力(可以增加业务模块实例数,或增大zk获取锁时间)。。。。

相关问题