apache / apache/incubator-seata-samples

OrderServer回滚,StorageServer没有回滚

Open
#256 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.4k
Forks
2k
PR merge metrics
No merged PRs in 30d

Description

**前提**
seata-server部署在windows上(db模式),使用[springcloud-eureka-feign-mybatis-seata demo](https://github.com/seata/seata-samples/tree/master/springcloud-eureka-feign-mybatis-seata),在StorageServer.decrease添加Thread.sleep(2000)模拟请求超时。使用jmeter,开启10个线程,每个线程调用2遍OrderServer order/create接口。

**现象**
由于超时order表全部回滚,没有产生数据(正常)
storage表出现出现扣库存(异常)
branch_table,lock_table,undo_log 都有一行数据,表明事务没正常回滚(异常)
global_table 表为空。
可多次复现。

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue with the springcloud-eureka-feign-mybatis-seata demo, deploying seata-server on Windows in db mode. Start by inspecting StorageServer.decrease and the transaction state in order, storage, branch_table, lock_table, undo_log, and global_table while running the described JMeter load. Done means timed-out requests roll back storage changes and leave no stale transaction rows.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
backend, databases, distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.