回答1:你好请问一下,我碰到个问题:没有并发,单个更新语句,每次对值 +1,比如执行第一次之后的值为2,记录的afterImage是2,执行第二次之后的值为3,记录的afterImage是3,回滚的时候通过dataValidationAndGoOn方法比较,第一次的afterImage(2)跟当前值(3)肯定对不上啊?请问下这个是我理解有误还是用法不对呢?最终会一直报错脏写Has dirty records when undo.,无法回滚。seata版本:1.6.1 回答2:没有并发,只是单次请求里的for循环,每次对值加1,回滚能拿到全局锁,问题是afterimage和当前值的对比逻辑,为啥我这边日志里都是拿一个老的afterimage的值跟最新值比较呢,比如上面例子的2跟3
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
回答1:全局锁锁着,不可能出现这种问题 回答2:大概率tc的branch table的datetime没加精度,此回答整理自钉群“3群-Seata 开源讨论群”