apache / apache/incubator-seata

AT mode. if register branch after global transaction rollback, lock_table will insert an unrollbackable reocrd

Open
#3,220 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
26k
Forks
8.8k
Avg merge
1d 8h
Merged PRs (30d)
4

Description

- [ ] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate.

### Ⅰ. Issue Description

1. AT模式下. 当全局事务回滚之后。某个事务分支重新注册事务成功,lock_table中会存在一条记录并且无法回滚。

### Ⅱ. Describe what happened

seata打印日志如下图:
![image](https://user-images.githubusercontent.com/5763397/97126401-aa400e00-1771-11eb-8733-23ef6e3b8028.png)
![image](https://user-images.githubusercontent.com/5763397/97126403-ad3afe80-1771-11eb-8c48-4c1dbea36e4c.png)

### Ⅲ. Describe what you expected to happen

是否应该自动回滚掉错误注册的branch?

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

高并发压力测试环境,无法百分之百复现

### Ⅴ. Anything else we need to know?

### Ⅵ. Environment:

- JDK version : 1.8
- OS : centos 7
- Others: seata 1.3.0

Contributor guide

Open the contributing guide

Research direction

Start by reviewing AT transaction branch registration and lock_table handling in Seata 1.3.0, then investigate the concurrent rollback and re-registration sequence described in the issue. Done means an incorrectly registered lock_table record is automatically rolled back and the behavior is covered by a reproducible regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.