apache / apache/incubator-seata
Why does TC try to rollback branch trsaction infinitely after a dirty write?
- Dominant language
- Java
- Stars
- 26k
- Forks
- 8.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 4
Description
Sometimes we want to keep the modification that was caused by the dirty write because of business logic. Is it really appropriate to assume that the rollback is retryable?
The only way to stop TC trying rolling back is to modify the data back to the afterImage manually. And this will cause a lost update since we may want to keep the current modification.
Maybe no retrying this type of rollback is better. Let users decide the modification.
Maybe there is a way to prevent dirty writes completely.
Contributor guide
Research direction
Start by tracing the TCC rollback path for dirty writes and how the afterImage is used during retries. Reproduce the reported infinite rollback behavior, then determine whether the expected behavior is to retry, stop retrying, or prevent dirty writes; document the chosen behavior with a focused test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100