Skip to content

Conversation

ZPZP1
Copy link
Contributor

@ZPZP1 ZPZP1 commented Jul 18, 2023

What kind of change does this PR introduce? (check at least one)

  • [√ ] Bugfix
  • Feature
  • Code style
  • Refactor
  • Doc
  • Other, please describe:

The description of the PR:
这个主要原因是由于当初想通过每个连接的保存点名称计数,根据调用栈的深度来释放掉SavePointHolder对象,当到达外层调用栈时最后一个savepoint会返回0(即第一次为savepoint0),但是如果某一层级多个嵌套事务的话就会导致order连接创建出savepoint计数为1的保存点,所以当保存点释放、回滚时会出现即使SavePointHolder持有的savepoint集合为空(已经释放回滚干净)但计数未<=0不满足条件,无法删除空持有的SavePointHolder对象,因此影响主事务提交|回滚。今天那个pr虽然会再次判断这个savePointHolder持有的savepoints集合是否为空来作为存在保存点的条件但是仍然会多出一个空持有对象,因此通过将保存点释放、回滚时删除savepoint集合持有对象(SavePointHolder)的条件改为为SavePointHolder中savepoints集合是否为空

Other information:
#531

@huayanYu
Copy link
Member

有冲突

@ZPZP1
Copy link
Contributor Author

ZPZP1 commented Jul 18, 2023

==,我重新fork一下提交吧

@ZPZP1 ZPZP1 closed this Jul 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants