dromara / hmily

Distributed transaction solutions
https://dromara.org
Apache License 2.0
4.11k stars 1.41k forks source link

同一事务下,多次操作统一资源,每次操作都会获取相同的锁,后面的操作会获取失败 #367

Open zkyoma opened 1 year ago

zkyoma commented 1 year ago

Describe the bug

假设有全局事务 A,事务 A 对数据库表的某一行 B 操作了多次,第一次时会获取B对应的锁,第二次操作B时会因为第一次的占用而获取锁失败。

Environment

Steps to reproduce

在同一个事务内部,多次更新统一资源

Expected behavior

获取全局锁时,不仅要检查当前锁是否被获取,还要判断是否已经被当前事务获取,如果是,则获取其他锁即可。