apache / apache/incubator-seata

TCC mode two stage cannot be executed

Open
#6,579 1 comment 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
https://github.com/apache/incubator-seata/pull/5153
这个pr导致了2.0 tcc和2.1server不兼容
1. 2.0的分支注册在tm侧,这个pr限制了只有at模式才允许去找其他的channel尝试下发
2. 2.1将分支注册锁定在rm侧,tm和rm的application是不同的,所以2.0注册的分支,在升级的过程中,也无法下发到2.1的rm侧去完成
3. 这个pr为的就是防止相同的resourceid实则不同的应用,然后下发到了另一个应用去导致异常的情况.

This pr caused 2.0 tcc and 2.1 server incompatibility
The branch of 2.0 is registered on the tm side. This pr restricts that only at mode is allowed to find other channels to try to deliver.
2.1 locks the branch registration on the rm side, the application of tm and rm is different, so the branch registered in 2.0 cannot be sent to the rm side of 2.1 to complete during the upgrade process
The purpose of this pr is to prevent the same resourceid from being used in different applications, and then send it to another application to cause an exception.
### Ⅱ. Describe what happened

If there is an exception, please attach the exception trace:

```
Just paste your stack trace here!
```

### Ⅲ. Describe what you expected to happen

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

1. xxx
2. xxx
3. xxx

Minimal yet complete reproducer code (or URL to code):

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

### Ⅵ. Environment:

- JDK version(e.g. `java -version`):
- Seata server version: 2.1.0-SNAPSHOT
- Database version:
- OS(e.g. `uname -a`):
- Others:

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the referenced PR 5153 and comparing branch registration in the 2.0 TM path with the 2.1 RM path. Reproduce an upgrade from Seata 2.0 TCC to the 2.1.0-SNAPSHOT server; done means existing TCC branches can complete without dispatching to a different application.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
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.